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.