Rotate around Center of Mass

Jim Hurley jhurley0305 at sbcglobal.net
Sun Jan 8 15:44:26 EST 2012


Mark,

The script below will allow you to rotate an image about any predefined point.

Create a button.
Create an image.
Place the button at any point relative to the image. (Perhaps use a grab me in a mousedown handler.)
Click the button. 
The image will rotate about the center of the button.
(For your application you would replace the center of rotation with the  center of mass.)


on mouseUp
   set the angle of img 1 to 0
   put the loc of me into myLoc

   --Set the coor of the rotation Pt
   put item 1 of myLoc into x0
   put item 2 of myLoc into y0
   
   --Get the loc of the image
   put the loc of img 1 into tLoc
   put item 1 of tLoc into xC
   put item 2 of tLoc into yC

   --Get the distance between the roation pt and the image center
   put sqrt ( (xC - x0 )^2 + (yC - y0)^2 )  into L

    --Get the angle of the line from the rotation center to the image center
   put atan2(yC-y0, xC-x0) *180/pi into phi0 

   put 0 into tAngle

   repeat 360 times
      lock screen
      set the angle of img 1 to -tAngle
      put phi0 + tAngle into phi
      set the loc of img 1 to (x0 + L * cos(phi*pi/180)), (y0 + L * sin(phi*pi/180))
      unlock screen

      add 1 to tAngle
      wait 10 millisec --or whatever
   end repeat
end mouseUp

on mouseDown
   grab me --So that you can relocate the rotation center.
end mouseDown

> -------------------------------------------------------------------
> 
> Message: 1
> Date: Sat, 7 Jan 2012 10:15:36 -0800 (PST)
> From: AcidJazz <mpezzo at gmail.com>
> To: use-revolution at lists.runrev.com
> Subject: Rotate around Center of Mass
> Message-ID: <1325960136367-4273701.post at n4.nabble.com>
> Content-Type: text/plain; charset=us-ascii
> 
> Is there a way to rotate an image around it's center of mass?     I teach
> statistics, and one of the definitions of the mean is that it is the balance
> point of a distribution.   I'd like to actually show a distribution
> "balancing" back and forth, or actually spinning around its mean.   But, if
> I take an image of a very skewed distribution of scores (long tail) and
> tried to rotate it, it would rotate around the center of the /image/, which
> would not necessarily be the mean of the distribution.   I image that the
> solution involves extending the size of the image so that it is now centered
> on the mean, but without altering or moving the actual distribution.   In
> BlueMango's Clarify, after you take a snapshot, you can extend the size of
> the image without stretching the picture.  I would need a way to do that
> programmatically so that the horizontal center is the mean of the
> distribution.    Any suggestions??
> 
> Mark   
> 
> --




More information about the use-livecode mailing list