Spel17: Elastisk Kedja

hqdefault                                                        Följ dynamiken!

Vi simulerar dynamiken av en kedja bestående av leder förenade med elastiska fjädrar.

Template 1 (Följ dynamiken)

— Kedja av Massor och Fjädrar

function setup()
print(“Kedja av Massor och Fjädrar”)

print(“Touch för att skapa massor länkade mes fjädrar”)
links = {}
linkvels = {}
dt = 0.01
force = vec2(0,0)
N=0

end

function draw()

background(40, 40, 50)

for k,link in pairs(links) do
fill(255, 0, 54, 255)
strokeWidth(0)
ellipse(links[k].x,links[k].y,40)
if k>1 then
stroke(0, 255, 66, 255)
strokeWidth(10)
line(links[k].x,links[k].y,links[k-1].x,links[k-1].y)
end
if k>2 then
for m=1,4 do
force = (links[k-2] – 2*links[k-1]+links[k])
linkvels[k-1]=linkvels[k-1]+force*dt
links[k-1]=links[k-1]+linkvels[k-1]*dt
end
end
if k<2 then
force =vec2(0,0)
linkvels[1]=linkvels[1]+force*dt
links[1]=links[1]+linkvels[1]*dt
end
end
end

function touched(touch)

if touch.state == BEGAN then
N=N+1
table.insert(links, makeLink(touch.x,touch.y))
table.insert(linkvels, makeLinkVel())
end
if touch.state == ENDED then
links[N].x = touch.x
links[N].y = touch.y
end
end

function makeLink(x,y)
local link=vec2()
link.x = x
link.y = y
return link
end

function makeLinkVel()
local linkvel=vec2(0,0)
return linkvel
end

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s