TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
 Specialized Dev Zones Research Center eBook Library .NET Java C++ Web Dev Architecture Database Security Open Source Enterprise Mobile Special Reports 10-Minute Solutions DevXtra Blogs Slideshow

Language: VB4,VB5,VB6
Expertise: Intermediate
Oct 20, 2001

### WEBINAR:On-Demand

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

# 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

 Submit a Tip Browse "Application Design" Tips Browse All Tips
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