Curves and Curved Surfaces


Foreward

In the field of computer generated graphics, there is a constant quest for realism. Programmers strive to produce images that are as physically and perceptually correct as possible. In this quest, two main issues arise these days: correctness and speed. The correct (usually best looking) way can generally be expected to be extremely computationally expensive. With this in mind, the programmer must decide what percentage of each of the two to put in the code. In the quest for speed, due to the nature of computers, fast lines are used to draw images, and straight edged polygons are used to create 3-dimensional objects. These can look good, and even be drawn many times a second to produce smooth animation, but at the cost of looks. The main problem is the fact that most real objects consist of curved surfaces, which can only be approximated my a shaded polygon, and the tradeoff is speed.


Before describing the types of curves, one must understand the concept of continuity and how it applies to curves.

G

The simplest type of continuity is geometric continuity (from here foreward referred to as G continuity with a following number inferred to be a superscript descriptor of the type of continuity). To fulfill G0 continuity, two curves must join together at an endpoint. To fulfill G1 continuity, (using the first derivative) the directions of the two segment's tangent vectors must be equal at a join pont. In this light, GN continuity would imply that at the join point of 2 segments, the N'th derivative must be equal in direction.

C

The second type of continuity is C continuity. C1 continuity implies that the tangent vectors of the join point of each curve are equal in both magnitude and direction. Going further, CN continuity implies that the join point of the 2 segments must be equal in direction and magnitude at the Nth derivative.


Curves can be represted mathematically in three ways:

  1. Explicit functions
  2. Implicit equations
  3. Parametric equations



Explicit functions

Explicit functions are those most often studied in math classes. They are of the form, y=F(x), where there is exactly one y value for each x and vice versa. In the third dimencsional form, for one pair of variable values, there is only one third number.

Problems with using this representation to display a curve include:

- Only 1 y for each x, making it difficult to represent many curves without joinging several together , and then there is the problem of determining the equation for each of the two curves, and there will be problems with continuity.
- The curves are not rotationally invariant, meaning that no rotations may be applied to the curve.
- It is very difficult to represent a curve with a slope of infinity because of how quickly the y values of the function will escape to infinity near that point.

Implicit equations

Implict equations are of the form F(x,y)=0. If one wanted to model a circle, the equation x^2 + y^2 + r^2 = 0 would be used.

Problems with using this representation to display a curve include:

- In order to represent only part of a curve, one must specify constraints on it and also make sure the correct part of the inside of the constraints is displayed.
- Joining curves together smoothly is very difficult due to the nature of attempting to alter equations.

Parametric equations

Parametric equations prove to be the most useful form for displaying curves. They are of the form x=F(t), y=F(t) where 0<=t<=1. With this method, equations of all orders of magnitudes may be represented, even up to the third dimension.
Problems with this kind of curve are specific to the type of parametric curve one wishes to represent. In order to see several different types of parametric curves, go to the parametric page.




In order to draw a parametric curve, (SEE