Reg_Cl_Plane_Curve is defined in
It is derived from
Reg_Cl_Plane_Curve is not called
Regular_Closed_Plane_Curve" because the longer name
causes too many "Overfull boxes"1
in the CWEAVE output of the program code.
See CWEB Documentation.
Reg_Cl_Plane_Curve is meant to be used as a base class; no
objects should be declared of type
class Ellipses is derived from
class Circle is derived from
At present, I have no fixed definition of what constitutes
"regularity" as far as
Reg_Cl_Plane_Curves are concerned.
Ellipses and circles are "regular" in the sense that they have axes of
symmetry. There must be an equation for a
x^2 + y^2 = r^2
for a circle.
A derived class should have a
solve() function that uses this
Reg_Cl_Plane_Curve::intersection_points() in turn uses
solve() to find the intersection points of a line with the
Reg_Cl_Plane_Curve. This way, the derived classes don't need
their own functions for finding their intersections with a line.
However, such functions can be added, if desired.
It is assumed that classes derived from
fillable, which implies that they must be closed
Reg_Cl_Plane_Curves inherit their drawing and filling functions
The constructors and setting functions of classes derived from
Reg_Cl_Plane_Curve must ensure that the resulting geometric
figures are planar, convex, and that the number of
Points they contain is
a multiple of 4. The latter assumption is of importance in
See Regular Closed Plane Curve Reference; Intersections, and
Regular Closed Plane Curve Reference; Segments.