# 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``

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.