Three additional arguments cause the pentagon to be rotated about the x,
y, and z axes by the amount indicated. In this example, it's rotated
90 degrees

about the x-axis, so that it comes to lie in the x-y plane:

Reg_Polygon p(origin, 5, 3, 90);
p.draw();

Fig. 21.

In this example, it's rotated
36 degrees

about the y-axis, so that it appears to point in the opposite
direction from the first example:

Reg_Polygon p(origin, 5, 3, 0, 36);
p.draw();

Fig. 22.

In this example, it's rotated
90 degrees

about the z-axis, so that it lies in the z-y plane:

Reg_Polygon p(origin, 5, 3, 0, 0, 90);
p.draw();

Fig. 23.

In this example, it's rotated
45 degrees

about the x, y, and z-axes in that order:

Reg_Polygon p(origin, 5, 3, 45, 45, 45);
p.draw();

Fig. 24.

Reg_Polygons need not be centered about the origin. If
another Pointpt is used as the first argument, the Reg_Polygon
is first created with its center at the origin, then the specified
rotations, if any, are performed. Finally, the Reg_Polygon is
shifted such that its center comes to lie on pt:

Point P(-2, 1, 1);
Reg_Polygon hex(P, 6, 4, 60, 30, 30);
hex.draw();

Fig. 25.

In the following example, the Reg_Polygonpolygon is first
declared using the default constructor, which creates an empty
Reg_Polygon. Then, the polygon is repeatedly changed using
the setting function corresponding to the constructor used in the
previous examples. [next figure]
demonstrates that a given
Reg_Polygon need not always have the same number of sides.