PDA

Visualizza la versione completa : [C] Gravitazione


spaccaversi
10-06-2012, 18:55
Salve ragazzi,
dovrei creare un programma che simula matematicamente il moto di un corpo attorno ad un'altro corpo.
Allora il corpo che devo muovere si trova nella posizione [0,0.5,0] mentre il corpo fisso in [0,0,0]
Le posizioni sono definite da due array di tre dimensioni. Il mio compito Ŕ fargli fare un giro completo mantenendo una distanza minima di 0.5 nel minor tempo possibile.
Avete idee su come fare una cosa del genere? Grazie :D

escocat
10-06-2012, 23:15
Occorre agire sui vettori. Se x1, y1, z1, vx1, vy1, vz1, ax1, ay1, az1 sono i componenti di X (posizione), V(velocitÓ), A(accelerazione) del primo corpo e analoghi per il secondo corpo, la legge di gravitazione si esprime scrivendo che la posizione di ogni corpo segue la legge

X = X + V

mentre per la velocitÓ:

V = V + A

Resta da stabilire A. Vettorialmente

A = vers(d) * m1*m2*K

d Ŕ la distanza istantanea tra i due corpi, K una costante (che vuoi tu), m1 e m2 le masse.

Passando ai componenti puoi scrivere:

ax = m1*m2*k*(x1-x2)/(d^2)
ay = m1*m2*k*(y1-y2)/(d^2)
az = m1*m2*k*(z1-z2)/(d^2)

Loading