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 degreesSub 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    NextEnd Sub

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: