Ellipse
has a constructor similar to those for
Reg_Polygon
and Rectangle
. The first argument is the
center of the Ellipse
, and the following two specify the lengths
of the horizontal and vertical axes respectively. The Ellipse
is
first created in the x-z plane, centered about the origin. The
horizontal axis lies along the x-axis and the vertical axis lies along
the z-axis. The three subsequent arguments specify the amounts of
rotation about the x, y, and z-axes respectively and default to 0.
Finally,
Ellipse
is shifted such that its center comes to lie at the
Point
specified in the first argument.
Point pt(-1, 1, 1); Ellipse e(pt, 3, 6, 90); e.draw();
Fig. 33.
As you may expect, this constructor has a corresponding setting function:
Ellipse e; real h_save = 1.5; real v_save = 2; real h = h_save; real v = v_save; Point p(-1); for (int i = 0; i < 5; ++i) { e.set(p, h, v, 90); e.draw(); h_save += .25; v_save += .25; h *= sqrt(h_save); v *= sqrt(v_save); p.shift(0, 0, 2); }
Fig. 34.