[newbie] momento di inerzia per un cilindro
salve ragazzi!
Sono nuovo della fisica e sto sviluppando un programma per interfacciare un motore grafico con un motore fisico x poter inserire la fisica nel mio mini-demo. però ho un prob.
allora io creo un cilindro omogeneo di massa 5 kg e gli applico costantemente (nel senso che applico la forza sempre, non una solo volta e basta) una forza di
-98.2*massa per simulare la gravità. a questo punto mi calcolo il suo momnto di inerzia scalare con la formula (massa*raggio*raggio)/2. Quindi prendo il vettore che rappresenta il momento di inerzia ma appunto vettoriale (infatti il motore fisico lo vuole passato come vettoriale e non come scalare) e setto x,y e z del vettore al valore così trovato.
il prob. è che anche quando sbatte contro qualcosa il cilindro resta sempre e comunque in piedi, anche se cade si rialza, anche se apparentemente non ha la forza necessaria per farlo, perchè cade lentamente (come se fosse soggetto solo alla forza di gravità e in minima parte alla forza che lo ha fatto cadere) e poi si rialza dalla parte in cui è caduto o dall'altra parte. E' un prob. del motore fisico o della mia formula? Potete controllare se il procedimento che uso è corretto, x favore?
Inoltre come si calcola il momento di inerzia di un cilindro con il centro della massa che non corrisponde al baricentro del cilindro?
core::vector3df inertia;
inertia.X=(pin_body->getMass()*radius*radius)/2;
inertia.Y=(pin_body->getMass()*radius*radius)/2;
inertia.Z=(pin_body->getMass()*radius*radius)/2;
pin_body->setMomentOfInertia(inertia);
Grazie ciao
Sono nuovo della fisica e sto sviluppando un programma per interfacciare un motore grafico con un motore fisico x poter inserire la fisica nel mio mini-demo. però ho un prob.
](/datas/uploads/forum/emoji/eusa_wall.gif)
allora io creo un cilindro omogeneo di massa 5 kg e gli applico costantemente (nel senso che applico la forza sempre, non una solo volta e basta) una forza di
-98.2*massa per simulare la gravità. a questo punto mi calcolo il suo momnto di inerzia scalare con la formula (massa*raggio*raggio)/2. Quindi prendo il vettore che rappresenta il momento di inerzia ma appunto vettoriale (infatti il motore fisico lo vuole passato come vettoriale e non come scalare) e setto x,y e z del vettore al valore così trovato.
il prob. è che anche quando sbatte contro qualcosa il cilindro resta sempre e comunque in piedi, anche se cade si rialza, anche se apparentemente non ha la forza necessaria per farlo, perchè cade lentamente (come se fosse soggetto solo alla forza di gravità e in minima parte alla forza che lo ha fatto cadere) e poi si rialza dalla parte in cui è caduto o dall'altra parte. E' un prob. del motore fisico o della mia formula? Potete controllare se il procedimento che uso è corretto, x favore?
Inoltre come si calcola il momento di inerzia di un cilindro con il centro della massa che non corrisponde al baricentro del cilindro?
core::vector3df inertia;
inertia.X=(pin_body->getMass()*radius*radius)/2;
inertia.Y=(pin_body->getMass()*radius*radius)/2;
inertia.Z=(pin_body->getMass()*radius*radius)/2;
pin_body->setMomentOfInertia(inertia);
Grazie ciao

Risposte
deci specificare qual'é la retta rispetto a cui vuoi calcolare il momento di inerzia.
I momenti di inerzia che calcoli tu mi sembrano sbagliati, giacché il momento di inerzia MR^2/2 è quello rispetto all'assa di simmetria del cilindo, che è uno solo.
Se consideri un sistema di riferimento ortogonale con origine nel baricentro del cilindro (omogeneo di massa M, raggio R e altezza H), con l'asse Z coincidente con quello di simmetria, allora i momenti di inerzia rispetto agli assi X e Y saranno uguali e pari a M(R^2/4+H^2/12). Quello rispetto all'asse Z è MR^2/2.
Per fare queste cose devi studiare la geometria delle masse.
I momenti di inerzia che calcoli tu mi sembrano sbagliati, giacché il momento di inerzia MR^2/2 è quello rispetto all'assa di simmetria del cilindo, che è uno solo.
Se consideri un sistema di riferimento ortogonale con origine nel baricentro del cilindro (omogeneo di massa M, raggio R e altezza H), con l'asse Z coincidente con quello di simmetria, allora i momenti di inerzia rispetto agli assi X e Y saranno uguali e pari a M(R^2/4+H^2/12). Quello rispetto all'asse Z è MR^2/2.
Per fare queste cose devi studiare la geometria delle masse.