# [Physics] How to model a very simple spinning wheel

accelerationfrictionrotationrotational-dynamicsrotational-kinematics

First off, I'm not a physics person, just a lowly software engineer with below average math skills. What I've written is a simple animation of a spinning wheel using C++/GTK/Cairo. It allows the user to specify on the command line the labels for each wheel section ( pie slice ) and the section the wheel should stop spinning on.

Now, I used very simple code to "simulate" the physics of the wheel by using a data structure that holds number of full 360 degree spins and a "breaking/friction factor" for each section of the wheel.

I was able to populate the data empirically to get a "somewhat" pleasing result.

My question is, can you guys provide some guidance on how I might properly model this wheel so that I can actually spin it using real physics, and still be able to make it stop somewhere at a predetermined position?
I guess some equations, examples and hints would be very helpful.
Though I'd like to model this as accurately as possible, I don't need it to be "perfect".

I realize that to answer this question will require knowledge of physics and mathematics. Because I'm not great with either physics or mathematics, I'm willing to study and learn what I need to implement the code/system.

You need the total distance traveled by a point on the outer edge of the wheel to be equal to a predetermined distance. This can be found using the standard kinematic equation below:

V^2 - (V0)^2 = 2*a*s


where V is your final velocity, V0 is your initial velocity, a is your acceleration (negative for you wheel to be slowing down), and s is the distance traveled.

You can find the total distance turned using the equations:

rev = 2*3.14*r
s = rev*(n + d/360)


where r is the radius of your wheel, n is the number of complete revolutions you wish the wheel to make, and d is the number (in degrees) past the starting point of the wheel the preselected point is at.

Once you have calculated s, plug it into the first equation above. If you wish, comment and I can go into more detail about how to calculate the acceleration variable based on the force of friction around the wheel's axle, but for this exercise I think you are safe just empirically finding a constant acceleration value that makes the wheel slow down at a realistic rate (just make sure it is negative, otherwise your wheel will only continue to speed up!). Solve the equation for V0.

Hint: V = zero, since at your final velocity the wheel is not moving.

So now you have the initial velocity of a point on the outside of the wheel needed for the wheel to stop at your given spot. If this is what you need, you are done.

It may also be helpful to find the initial angular velocity, that is the rate at which the wheel should turn at initially. This can be found by dividing the actual velocity above by the radius. This gives you the angular velocity in radians per second; in order to get the number of degrees it should turn per second, multiply by 6.28 (a.k.a 2*pi).