Code:
@name Orbiter
@persist Ent:entity GravConstant Masses:array Positions:array
@persist Velocities:array Forces:array Colors:array Planets
if(first()|duped()){
runOnTick(1)
#All values between this line
GravConstant = 1
Planets = 6
#Planet 1
Masses[1,number] = 1000
Positions[1,vector] = vec(0,0,100)
Velocities[1,vector] = vec(0,0,1)
Colors[1,vector] = vec(255,0,0)
#Planet 2
Masses[2,number] = 100
Positions[2,vector] = vec(100,0,100)
Velocities[2,vector] = vec(2,2,0)
Colors[2,vector] = vec(0,255,0)
#Planet 3
Masses[3,number] = 100
Positions[3,vector] = vec(-100,0,100)
Velocities[3,vector] = vec(-2,-2,0)
Colors[3,vector] = vec(0,0,255)
#Planet 4
Masses[4,number] = 100
Positions[4,vector] = vec(-200,0,100)
Velocities[4,vector] = vec(-2,-2,0)
Colors[4,vector] = vec(255,255,0)
#Planet 5
Masses[5,number] = 100
Positions[5,vector] = vec(200,0,100)
Velocities[5,vector] = vec(-2,-2,0)
Colors[5,vector] = vec(255,0,255)
# Planet 6
Masses[6,number] = 100
Positions[6,vector] = vec(300,0,100)
Velocities[6,vector] = vec(-2,-2,0)
Colors[6,vector] = vec(0,255,255)
#and this line can be changed
Ent = entity()
Count = 1
while(Count<=Planets){
holoCreate(Count)
holoModel(Count,"icosphere3")
holoColor(Count,Colors[Count,vector])
holoScale(Count,log10(Masses[Count,number])*vec(1,1,1))
holoEntity(Count):setTrails(40,0,25,"trails/laser",Colors[Count,vector],100)
Count=Count+1
}
}else{
Count = 1
while(Count<=Planets){
Count2 = 1
Forces[Count,vector] = vec()
while(Count2<=Planets){
if(Count!=Count2){
Force = (GravConstant*Masses[Count2,number])/
(Positions[Count,vector]:distance(Positions[Count2,vector])^2)
Forces[Count,vector] = Forces[Count,vector]+(Positions[Count2,vector]-Positions[Count,vector]):normalized()*Force
}
Count2=Count2+1
}
Count=Count+1
}
Count=1
while(Count<=Planets){
Oldpos = Positions[Count,vector]
Positions[Count,vector] = Velocities[Count,vector]+Positions[Count,vector]+Forces[Count,vector]
Velocities[Count,vector] = Positions[Count,vector]-Oldpos
holoPos(Count,Ent:pos()+Positions[Count,vector])
Count=Count+1
}
}
Pictures!
Bookmarks