You're overthinking it. All you're trying to do is numerically integrate the accelerations over time to get the new position at any given time.
You can start with F=ma. Your system means that the motion is constrained to a circle, so all of the a's and v's will be angular accelerations and velocities.
Don't solve the forces at a uniform distribution of positions around the circle, solve them at a uniform distribution of times. To get the new position at each time, use the acceleration (a=F, since m=1)to get the velocity, then add v*t to your current position to get the new position (holding the current velocity for use next time, too. If you pick reasonably small time steps, this should work fine. If you solve it at uniform angles instead, you should be able to get away with interpolating. It doesn't matter if there's an initial angular velocity-- that would just be added to whatever you get.
In pseudocode I think all you need is:$m_inverse=1 /* this could be chosen as arbitrarily small, like 0.000 +01 to get effectively smaller time steps) */ $v=0 $theta=0 while(!$done){ ($F_x,$F_y)=ForceCalculator($theta) $F_perp=$F_x*sin(theta)+$F_y*cos($theta) $v=$v+$F_perp*$scale $theta=$theta+$v }
And you just have to make $m_inverse small enough to make the motion from step to step differences small. This is equivalent to changing the mass.
EDIT: this is the same thing that salva said here: Re^7: [OT] Forces.
In reply to Re^6: [OT] Forces.
by bitingduck
in thread [OT] Forces.
by BrowserUk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |