Computer Graphics Curves
Computer Graphics Curves
Computer Graphics Curves
In computer graphics, we often need to draw different types of objects onto the screen. Objects are not flat
all the time and we need to draw curves many times to draw an object.
Types of Curves
A curve is an infinitely large set of points. Each point has two neighbours except endpoints. Curves can be
broadly classified into three categories − explicit, implicit, and parametric curves.
Implicit Curves
Implicit curve representations define the set of points on a curve by employing a procedure that can test to
see if a point in on the curve. Usually, an implicit curve is defined by an implicit function of the form −
f (x,y) = 0
x2+y2-R2=0
Explicit Curves
A mathematical function y = f(x) can be plotted as a curve. Such a function is the explicit representation
of the curve. The explicit representation is not general, since it cannot represent vertical lines and is also
single-valued. For each value of x, only a single value of y is normally computed by the function.
Parametric Curves
Curves having parametric form are called parametric curves. The explicit and implicit curve
representations can be used only when the function is known. In practice the parametric curves are used. A
two-dimensional parametric curve has the following form −
The functions f and g become the x, y coordinates of any point on the curve, and the points are obtained
when the parameter t is varied over a certain interval [a, b], normally [0, 1].
Bezier Curves
Bezier curve is discovered by the French engineer Pierre Bézier. These curves can be generated under the
control of other points. Approximate tangents by using control points are used to generate curve.
where pi is the set of points and represents the Bernstein polynomials which are given by −
where n is the polynomial degree, i is the index, and t is the variable.
The simplest Bézier curve is the straight line from the point P0 to P1. A quadratic Bezier curve is
determined by three control points. A cubic Bezier curve is determined by four control points.
They generally follow the shape of the control polygon, which consists of the segments joining the
control points.
They always pass through the first and last control points.
They are contained in the convex hull of their defining control points.
The degree of the polynomial defining the curve segment is one less that the number of defining
polygon point. Therefore, for 4 control points, the degree of the polynomial is 3, i.e. cubic
polynomial.
The direction of the tangent vector at the end points is same as that of the vector determined by
first and last segments.
The convex hull property for a Bezier curve ensures that the polynomial smoothly follows the
control points.
No straight line intersects a Bezier curve more times than it intersects its control polygon.
Bezier curves exhibit global control means moving a control point alters the shape of the whole
curve.
A given Bezier curve can be subdivided at a point t=t0 into two Bezier segments which join
together at the point corresponding to the parameter value t=t0.
B-Spline Curves
The Bezier-curve produced by the Bernstein basis function has limited flexibility.
First, the number of specified polygon vertices fixes the order of the resulting polynomial which
defines the curve.
The second limiting characteristic is that the value of the blending function is nonzero for all
parameter values over the entire curve.
The B-spline basis contains the Bernstein basis as the special case. The B-spline basis is non-global.
A B-spline curve is defined as a linear combination of control points Pi and B-spline basis function Ni, k(t)
given by
Where,
k is the order of the polynomial segments of the B-spline curve. Order k means that the curve is made up
of piecewise polynomial segments of degree k - 1,
the Ni, k(t) are the “normalized B-spline blending functions”. They are described by the order k and by a
non-decreasing sequence of real numbers normally called the “k sequence
ti : i = 0, . . . n + K
The Ni, k functions are described as follows −
and if k > 1,
and
Properties of B-spline Curve
The sum of the B-spline basis functions for any parameter value is 1.
Each basis function has precisely one maximum value, except for k=1.
The maximum order of the curve is equal to the number of vertices of defining polygon.
The degree of B-spline polynomial is independent on the number of vertices of defining polygon.
B-spline allows the local control over the curve surface because each vertex affects the shape of a
curve only over a range of parameter values where its associated basis function is nonzero.
Any affine transformation can be applied to the curve by applying it to the vertices of defining
polygon.
The curve line within the convex hull of its defining polygon.