I'm making custom game engine, with custom physics simulation. I ran into a problem while trying to simulate arrows. Here is what I got for now:
The problem is, I don't understand clearly why arrows or spears (I guess, artillery shells do this too?) always turn towards the ground when thrown/shot.
So far, I thought up only some rough clues. On the image below, you can see my idea.
I assumed that 2 points farthest from the center of body's mass might cause the rotation. When long body is moving straight, there is no rotation induced. But when gravity shifts velocity down, it creates angular velocity, although if body is ideally symmetrical this 2 velocities will cancel out. But if center of mass will be shifted backwards or forwards, angular velocities will not be equal, and object will rotate. I used kind of inverse of angular velocity to linear velocity formula, maybe this is not correct...
As far as I see, there should be no torque induced by gravity, it should be canceled out by torque from opposite side of body.
Anyway, I tried to use this approach and (surprisingly) it shows some close results, although not quite as expected...
I fear that I don't see a full picture of how this rotation works.
Related questions:
If you throw ideally balanced stick (ignoring air drag) it will not turn in flight?
If you shoot arrow in Earth orbit, will it stay tangent to it's orbit? (As far as I know, spacecraft doesn't change its orientation while orbiting, maybe because it has perfect center of mass...)