Main Principles of Our Software

The general concept of our software is a *strict separation of geometry *from the *technique of drawing*. Its
main principles are the use of *line graphics, central projection *and *independent visibility checks*.

We use line graphics which means that we only draw curves. Line graphics are most suitable for the representation of results in differential geometry.

Surfaces are represented by families of curves on them, usually their parameter lines. Thus we do not need a special strategy or technique for the graphical representation of surfaces and only need two general objects.

**Figure 2.**
The hierarchy tree of objects for the representation of a given surface *S*

At the root of the hierarchy tree on the geometry side, there is the general
object type* SurfaceT*. It contains the methods needed in the mathematical
description of surfaces, in particular the virtual methods * ParToSurf* and
* SurfToPar * to transform parameter points into points on the surface and
vice versa. At the root of the hierarchy tree on the side of the technique of
drawing, there is the object type * Curve3DT* which contains all the methods
and procedures needed to draw three-dimensional curves. Its successor * UiT*
is needed to draw parameter lines on surfaces. On the geometry side, * ST*
is a successor of * SurfaceT*. It contains the special methods and procedures
needed for the geometry of the given surface *S*. At this level,
the procedures * ParToSurf * and * SurfToPar* have to be
declared according to the parametric representation of the surface *S*. The object types
* SCT*, a successor of *Curve3DT*, and * SUiT*, a successor of * UiT*,
are needed to draw the contour line and the parameter lines of *S*.
Again, the geometry of * S* has to be implemented into them.

Curves may be given by parametric representations or equations and are approximated by polygons. Line graphics causes no problem in the graphical representation of lines on surfaces or lines of intersections of surfaces, which is a major difficulty in many commercial software packages.

A disadvantage of the use of line graphics is that we are faced with a *contour problem*.

We use an independent procedure Check to test the visibility of our geometric objects. Thus we are free to manipulate to show desirable but unrealistic effects or not to use any test at all for a fast first sketch.

**Example 1. ** **Dandelin's spheres**

The uniquely defined spheres that are both tangent to a cone and an intersecting plane are called Dandelin's spheres.
They are tangent to the plane of intersection at the foci of the resulting conic section.

**Figure 3.**
Dandelin's spheres, concept, reality and desirable representation

The visibility of every point is immediately tested analytically. Thus our graphics are generated in a geometrically natural way.

Two consecutive points in the approximation of a curve are joined by a straight line segment if and only if both of them are visible. We use interpolation to close occasional gaps. This is less time consuming than increasing the overall number of points for the approximation. There is an option to either dot or omit invisible parts.