3

Assuming I rotate a disk, I want to know how long it takes to completely stop, and the number of revolutions it made since I removed my fingers off the disk.

Lets say a DVD I rotate with my fingers. I only know the radians per second (velocity) of the last moment I touched the disc.

Can you guys tell me where to start?

Im trying to implement this on an iPhone app. So it would be nice if you mention equations. It should not be exact.

David Z
  • 76,371
  • Hi Jose - I'm putting the homework tag on this because it sounds like a homework-type question, but could you confirm whether it is or not? What's the context of this question? – David Z Aug 03 '11 at 22:00
  • It is not homework. Im trying to implement a simulation of what I mentioned on the question into an iOS app (iPhone, iPod Touch, iPad application). – Jose Garcia Aug 03 '11 at 22:05
  • Should the iPhone measure the rotation of a real disk or do you want to display something that kind of resembles a disk? – whoplisp Aug 03 '11 at 22:13
  • User is going to rotate with his fingers a object (could be a bottle of Coke, a dvd, a vynil, etc...) and I want it rotate and decelerate on a "natural" way. – Jose Garcia Aug 03 '11 at 22:16

1 Answers1

4

Lets say the disk originally rotated with angular frequency $\omega_0$ in Hz.

Then due to friction you will have $\omega(t)=\omega_0-d t$. Where $d$ is the deceleration in Hz/s and $t$ is the time in seconds. Note that the disk won't start turning in the opposite direction $\omega(t)>0$.

Then you get a rotation angle $\alpha(t)$: $$\alpha(t)=\int_0^t \omega(t')\textrm{d}t'= \omega_0t - dt^2/2$$

(let ((omega0 50)
      (d .2)
      (start 0)
      (old-alpha 0))
  (defun start-turning (omega)
    (setf omega0 omega
          start (get-internal-real-time)))
  (defun draw ()
    (load-identity)
    (let* ((time (- (get-internal-real-time start)))
           (alpha (if (< 0 (- omega0 (* d time)))
                      (- (* omega0 time) (* d (/ 2) (expt time 2)))
                      old-alpha)))
      (rotate alpha 0 0 1)
      (setf old-alpha alpha))
    (draw-disk)))
whoplisp
  • 951
  • I have not anything of what you mentioned before. I want an approximation or expected behaviour of it, as it will be implemented on an iPhone app as a simulation. Nothing fancy. Just the correct feeling of natural deceleration. – Jose Garcia Aug 03 '11 at 22:12
  • Then just go with linear deceleration. – whoplisp Aug 03 '11 at 22:15
  • I only know Initial Velocity and Final Velocity. – Jose Garcia Aug 03 '11 at 22:19
  • 3
    I give up. I don't know what you want to do with this app. However, I don't think physics will help you here. I'll just write some OpenGL drawing code that would describe how the disc would slowly come to a stop. – whoplisp Aug 03 '11 at 22:26
  • @whoplisp "We want it free of stalks" was the answer when the Czar sent a ships load of corn to his slavic brothers in Montenegro :=) BTW, Your solution is fine for the geometry of a viscosimeter, ie with some counter-surface at small distance. In free space the air adhering to the disk will be accelerated radially and stream away. This adds some "pump" work to the frictional loss. – Georg Aug 04 '11 at 10:15
  • @Georg I am quite sure the orginial motivation for the question was to build some user interface code that will simulate the behaviour when you touch a simulated disk on an iPhone. The question is more to find a working heuristic that turns the (touchpad) coordinate-time into something realistic. Physics doesn't help there. – whoplisp Aug 04 '11 at 10:21
  • The corn stalks was a comment directed to Jose, demanding simple arithmetics done for him. – Georg Aug 04 '11 at 10:41