4.8. Drawing Regular Polygons
Problem
You want to draw a regular polygon (a polygon in which all sides are equal length) at runtime.
Solution
Create a custom MovieClip.drawRegularPolygon( )
method using the Drawing API and invoke it on a
movie clip.
Discussion
You can create a method to draw a regular polygon using basic trigonometric ratios to determine the necessary angles and coordinates of the segments.
The drawRegularPolygon( ) accepts five
parameters:
-
sides The number of sides in the polygon
-
length The length of each side in pixels
-
rotation The number of degrees by which the polygon should be rotated
-
x The x coordinate of the center of the polygon
-
y The y coordinate of the center of the polygon
Define the custom drawRegularPolygon( ) method
on MovieClip.prototype to make it available to all
movie clip instances:
// Include the custom Math library from Chapter 5 to accessMath.degToRad( ). #include "Math.as" MovieClip.prototype.drawRegularPolygon = function (sides, length, rotation, x, y) { // Convertrotationfrom degrees to radians. rotation = Math.degToRad(rotation); // The angle formed between the segments from the polygon's center as shown in // Figure 4-5. Since the total angle in the center is 360 degrees (2π radians), // each segment's angle is 2π divided by the number of sides. var angle = (2 * Math.PI) / sides; // Calculate the length of the radius that circumscribes the polygon (which is also // the distance from the center to any of the vertices). var radius = (length/2)/Math.sin(angle/2); ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access