devxlogo

Rotate an Object About a Point

Rotate an Object About a Point

You can rotate any object about a center using polar coordinates. Simply define your center Xo and Yo, which in this case is the center of a form. The amount of rotation is determined by direction, one degree:

 Private Direction As LongPrivate Xo As Long, Yo As LongPrivate Sub Form_Click()	If Direction = 1 Then		Direction = 359	'counterclockwise	Else		Direction = 1		'clockwise	End IfEnd SubPrivate Sub Form_Load()		Direction = 1		'clockwiseEnd SubPrivate Sub Form_Resize()	Xo = Me.ScaleWidth  2	Yo = Me.ScaleHeight  2End SubPrivate Sub Timer1_Timer()	Dim i  As Byte	Dim r As Single	Dim Pi As Single	Dim theta As Single	Dim plotx, ploty, dx, dy As Integer	Xo = Form1.Width / 2	'get center, image is to rotate about	Yo = Form1.Height / 2	Pi = 4 * Atn(1)	dx = Image1.Left - Xo	'get horizontal distance from center	dy = Image1.Top - Yo	' ""  vertical  ""	theta = Atn(dy / dx)	'get angle about center	r = dx / Cos(theta)	'get distance from center	plotx = r * Cos(theta + Direction * Pi / 180) + Xo	'get new x rotate about center	ploty = r * Sin(theta + Direction * Pi / 180) + Yo	'	""	y	""	Image1.Left = plotx	Image1.Top = plotyEnd Sub

devx-admin

Share the Post: