Spel49: Big Crunch

image

Som spektakulär tillämpning av våra nyförvärvade simuleringsfärdigheter programmerar vi vad som brukar kallas Big Crunch av ett Universum som drar ihop sig under gravitation och sedan expanderar igen. Koden är väsentligen densamma som i 7: Planetsystem och i Dark Energy på App Store.

Följ det dramatiska förloppet i en simulering här utan rotation och här med lite rotation. Jämför med tex denna simulering eller denna.

Template:

— Gravitational Collapse

function setup()
displayMode(FULLSCREEN)
end

I1=10
I2=10

pos= {}
vel = {}
acc= {}
force= {}
mass={}
for i1=1,I1 do
pos[i1]= {}
vel[i1] = {}
acc[i1]= {}
force[i1] = {}
end

for i1=1,I1 do
for i2=1,I2 do
pos[i1][i2]= vec2(0,0)
vel[i1][i2]= vec2(0,0)
acc[i1][i2]= vec2(0,0)
force[i1][i2] = vec2(0,0)
end
end

dt =0.002
h1=40
h2=1

for i1=1,I1 do
for i2=1,I2 do
pos[i1][i2]=vec2(400+i1*h1*math.cos(2*math.pi*i2*h2/I2),400+i1*h1*math.sin(2*math.pi*i2*h2/I2))
end
end

function draw()

background(29, 22, 23, 255)

font(“AmericanTypewriter-Condensed”)
fontSize(70)
fill(0, 38, 255, 255)
text(“Gravitational Collapse”,350, 950)
stroke(43, 203, 22, 108)
strokeWidth(1)
fill(255, 0, 31, 255)
for i1=1,I1 do
for i2=1,I2 do
force[i1][i2] =vec2(0,0,0)
for j1=1,I1 do
for j2=1,I2 do
r2= (pos[i1][i2] -pos[j1][j2] ):len()
force[i1][i2] =force[i1][i2] -(1000000/(r2+20)^3)*(pos[i1][i2]-pos[j1][j2])
end
end
acc[i1][i2] = force[i1][i2]
vel[i1][i2]=vel[i1][i2] +acc[i1][i2]*dt
pos[i1][i2]=pos[i1][i2] +vel[i1][i2]*dt
d= (pos[i1][i2] -vec2(400,400)):len()
fill(255-d,d/2+18, d, 255)
ellipse(pos[i1][i2].x,pos[i1][i2].y,10+d*0.3)
end
end

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