Page 140 - Computer Graphics Handout
P. 140
of complex geometric forms. This section introduces the basic methods for generating and interpolating curves commonly used in
computer graphics systems.
3.15.1 Parametric Curves
A parametric curve is defined by expressing its coordinates as functions of a parameter, usually denoted by t. In two or three
dimensions, a parametric curve can be written as:
P(t)=(x(t),y(t),z(t)),t0≤t≤t1\mathbf{P}(t) = (x(t), y(t), z(t)), \quad t_0 \leq t \leq t_1P(t)=(x(t),y(t),z(t)),t0≤t≤t1
By varying the parameter t, points along the curve are generated sequentially. Parametric representations provide flexibility and
are well suited for rendering curves, animating motion, and defining complex geometric shapes.
3.15.2 Bezier Curves
Bezier curves are parametric curves defined by a set of control points. The shape of the curve is influenced by these control points,
while the curve itself does not necessarily pass through all of them.
Bezier curves are commonly expressed using Bernstein polynomials and provide smooth and intuitive curve control. They are widely
used in computer graphics, computer-aided design (CAD), and font design due to their mathematical simplicity and smooth
appearance.
3.15.3 Cubic Splines
Cubic splines are piecewise polynomial curves composed of multiple cubic segments joined together. Each segment is defined
between two successive control points, and continuity constraints are applied to ensure smooth transitions at the joining points.
Cubic splines provide greater flexibility than single Bezier curves when modeling complex shapes, as they allow local control of the
curve. Modifying one control point affects only a limited portion of the curve, making splines suitable for interactive modeling
applications.
3.15.4 Curve Blending Techniques
Curve blending techniques are used to smoothly connect multiple curve segments to form a continuous shape. These techniques
ensure continuity in position and, in many cases, in the first and second derivatives, resulting in visually smooth transitions.
Blending is commonly applied in animation paths, surface modeling, and geometric design, where smoothness and continuity are
critical. By adjusting blending parameters, designers can control the smoothness and curvature of the resulting shape.
SUMMARY AND NOTES
In this chapter, we have presented two different—but ultimately complementary— points of view regarding the mathematics of
computer graphics. One is that mathematical abstraction of the objects with which we work in computer graphics is necessary if we
are to understand the operations that we carry out in our programs. The other is that transformations—and the techniques for
carrying them out, such as the use of homogeneous coordinates—are the basis for implementations of graphics systems.
Our mathematical tools come from the study of vector analysis and linear algebra. For computer-graphics purposes, however, the
order in which we have chosen to present these tools is the reverse of the order that most students learn them. In particular, linear
algebra is studied first, and then vector-space concepts are linked to the study of n-tuples in Rn. In contrast, our study of
representation in mathematical spaces led to our use of linear algebra as a tool for implementing abstract types. We pursued a
coordinate-free approach for two reasons. First, we wanted to show that all the basic concepts of geometric objects and of
transformations are independent of the ways the latter are represented. Second, as object-oriented languages become more
prevalent, application programmers will work directly with the objects, instead of with those objects’ representations. The
references in Suggested Readings contain examples of geometric programming systems that illustrate the potential of this approach.
Homogeneous coordinates provided a wonderful example of the power of mathematical abstraction. By going to an abstract
mathematical space—the affine space— we were able to find a tool that led directly to efficient software and hardware methods.
Finally, we provided the set of affine transformations supported in OpenGL and discussed ways that we could concatenate them to
provide all affine transformations.
The strategy of combining a few simple types of matrices to build a desired transformation is a powerful one; you should use it for
a few of the exercises at the end of this chapter. In Chapter 4, we build on these techniques to develop viewing for three-dimensional
140

