还没搞定,算了给你写了一个,记得给分啊。 Private Type Point x As Long y As Long End Type Const PI = 3.1415926 Const RADII = 800 Dim CenterPoint As Point Dim lngAngle&Private Sub Form_Load() CenterPoint.x = Me.Width / 2 CenterPoint.y = Me.Height / 2 End SubPrivate Function getPoint(ByVal angle&) As Point getPoint.x = Cos(PI * angle / 180) * RADII + CenterPoint.x getPoint.y = Sin(PI * angle / 180) * RADII + CenterPoint.y End FunctionPrivate Sub DrawAngle(ByVal Boders&, ByVal angle&) Dim lngCnt&, DrawAngle&
DrawAngle = angle For lngCnt = 1 To Boders Me.Line (getPoint(DrawAngle).x, getPoint(DrawAngle).y)-(getPoint(AngleAdd(DrawAngle, 360 / Boders)).x, getPoint(AngleAdd(DrawAngle, 360 / Boders)).y) DrawAngle = AngleAdd(DrawAngle, 360 / Boders) Next End SubPrivate Function AngleAdd&(ByVal angle, ByVal Add&) AngleAdd = (angle + Add) Mod 360 End FunctionPrivate Sub Draw(ByVal angle&) DrawAngle 3, angle DrawAngle 4, angle DrawAngle 5, angle End SubPrivate Sub Timer1_Timer() CenterPoint.x = Me.Width / 2 CenterPoint.y = Me.Height / 2
Me.Cls Draw lngAngle lngAngle = AngleAdd(lngAngle, 1) End Sub
我调试成功了啊,而且不只正三到五边形,正三到N边形都可以转啊. Private Sub Draw(ByVal angle&) DrawAngle 3, angle DrawAngle 4, angle DrawAngle 5, angle '只要加到下面就好 ' DrawAngle 6, angle ' DrawAngle 7, angle ' DrawAngle 8, angle ....... End Sub
Private Type Point
x As Long
y As Long
End Type
Const PI = 3.1415926
Const RADII = 800
Dim CenterPoint As Point
Dim lngAngle&Private Sub Form_Load()
CenterPoint.x = Me.Width / 2
CenterPoint.y = Me.Height / 2
End SubPrivate Function getPoint(ByVal angle&) As Point
getPoint.x = Cos(PI * angle / 180) * RADII + CenterPoint.x
getPoint.y = Sin(PI * angle / 180) * RADII + CenterPoint.y
End FunctionPrivate Sub DrawAngle(ByVal Boders&, ByVal angle&)
Dim lngCnt&, DrawAngle&
DrawAngle = angle
For lngCnt = 1 To Boders
Me.Line (getPoint(DrawAngle).x, getPoint(DrawAngle).y)-(getPoint(AngleAdd(DrawAngle, 360 / Boders)).x, getPoint(AngleAdd(DrawAngle, 360 / Boders)).y)
DrawAngle = AngleAdd(DrawAngle, 360 / Boders)
Next
End SubPrivate Function AngleAdd&(ByVal angle, ByVal Add&)
AngleAdd = (angle + Add) Mod 360
End FunctionPrivate Sub Draw(ByVal angle&)
DrawAngle 3, angle
DrawAngle 4, angle
DrawAngle 5, angle
End SubPrivate Sub Timer1_Timer()
CenterPoint.x = Me.Width / 2
CenterPoint.y = Me.Height / 2
Me.Cls
Draw lngAngle
lngAngle = AngleAdd(lngAngle, 1)
End Sub
Private Sub Draw(ByVal angle&)
DrawAngle 3, angle
DrawAngle 4, angle
DrawAngle 5, angle
'只要加到下面就好
' DrawAngle 6, angle
' DrawAngle 7, angle
' DrawAngle 8, angle
.......
End Sub