Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Jan 13, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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 Long
Private Xo As Long, Yo As Long

Private Sub Form_Click()
	If Direction = 1 Then
		Direction = 359	'counterclockwise
		Direction = 1		'clockwise
	End If
End Sub

Private Sub Form_Load()
		Direction = 1		'clockwise
End Sub

Private Sub Form_Resize()
	Xo = Me.ScaleWidth \ 2
	Yo = Me.ScaleHeight \ 2
End Sub

Private 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 = ploty
End Sub
David A.
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date