|
Language: VB4,VB5,VB6 Expertise: Intermediate
Oct 20, 2001
DrawPolygon - Draw a closed polygon with any number of sides
' Draw a polygon, given its center and number of sides
' CTRL can be either a form or a PictureBox control.
' ANGLE is an optional angle in degrees
Sub DrawPolygon(ctrl As Object, ByVal xc As Single, ByVal yc As Single, _
ByVal side As Single, ByVal numSides As Integer, _
Optional ByVal angle As Single)
Dim deltaAngle As Single
Dim r As Single
Dim i As Integer
Dim x2 As Single
Dim y2 As Single
' evaluate the angle formed by each side (in radians)
deltaAngle = 3.14159265358979 * 2 / numSides
' evaluate the radius of the circle that wraps the polygon.
r = side / Sin(deltaAngle / 2)
' convert the initial angle in radians
angle = angle / 57.2957795130824
' Draw individual sides
For i = 1 To numSides
ctrl.Line (xc + r * Sin(angle), yc + r * Cos(angle))-(xc + r * Sin _
(angle + deltaAngle), yc + r * Cos(angle + deltaAngle))
angle = angle + deltaAngle
Next
End Sub
Francesco Balena
|