Presentation is loading. Please wait.

Presentation is loading. Please wait.

Curves Chiew-Lan Tai. Curves 2 Reading Required Hearn & Baker, 8-8 – 8-10, 8-12 Foley, 11.2.

Similar presentations


Presentation on theme: "Curves Chiew-Lan Tai. Curves 2 Reading Required Hearn & Baker, 8-8 – 8-10, 8-12 Foley, 11.2."— Presentation transcript:

1 Curves Chiew-Lan Tai

2 Curves 2 Reading Required Hearn & Baker, 8-8 – 8-10, 8-12 Foley, 11.2

3 Curves 3 Curves Before Computers The loftsman’s or carpenter’s spline: long, narrow strip of wood or metal shaped by lead weights called “ducks” Usually gives curves with second-order continuity Used for designing cars, ships, airplanes etc. But curves based on physical artefacts cannot be replicated well, since there is no exact definition of what the curve is. Around 1960, a lot of industrial designers were working on this problem. Today, curves are easy to manipulate on a computer and are used for CAD, art, animation, …

4 Curves 4 Motivation for curves In graphics, what do we use curves for? creating models Paths of movement, animation

5 Curves 5 Curve Representations Explicity = f(x) what if the curve is not a function, e.g. a circle? Implicitf(x,y,z) = 0 x 2 + y 2 - R = 0 Parametric(x(u), y(u)) easier to work with E.g. circle x(u) = cos 2  u y(u) = sin 2  u 0  u  1

6 Curves 6 Parametric Polynomial Curves We’ll use polynomial parametric curves, where the functions are all polynomials in the parameter. Advantages easy (and efficient) to compute infinitely differentiable We’ll also assume that u varies from 0 to 1

7 Curves 7 deCasteljau’s algorithm

8 Curves 8

9 9 Finding Q(u), cont In general where “n choose i” is This defines a class of curves called Bezier curves What is the relationship between the number of control points and the degree of the polynomials?

10 Curves 10 Bernstein polynomials The coefficients of the control points are a set of functions called the Bernstein polynomials. For degree 3, we have:

11 Curves 11 Useful properties Bernstein polynomials has some useful properties in [0,1]: each Bernstein coefficient is positive sum of all four coefficients is always exactly 1 (a.k.a., a “partition of unity”) These properties together imply that the curve lies within the convex hull of its control points. (convex hull is the smallest convex polygon that contains the control points)

12 Curves 12 Recall that most graphics hardware can only display lines and polygons. How can we display Bezier curves? It would be nice to have an adaptive algorithm that takes flatness into account. DisplayBezier (vo,v1,v2,v3) if (FlatEnough(v0,v1,v2,v3)) Line(v0,v3) else do something smart Displaying Bezier Curves

13 Curves 13 Subdivide and Conquer

14 Curves 14 Testing for Flatness Compare the total length of control polygon to the length connecting the endpoints:

15 Curves 15 More Complex Curves Suppose we want to draw a more complex curve. We connect together individual curve segments that are cubic Bezier to form a longer curve, called splines. Why cubic? Smallest degree curves that can represent curves in 3D space There are three properties that we’d like to have in our constructed splines … Local control Interpolation continuity

16 Curves 16 One problem with Bezier curves is that every control point affects every point on the curve (except the endpoints) Moving a single control point affects the whole curve! We’d like our spline to have local control, that is, each control point affects a certain well-defined neighborhood around that point. Local Control

17 Curves 17 Interpolation Bezier curves are approximating. The curve does not (necessarily) pass through all the control points. Each point pulls the curve toward it, but other points are pulling as well. We’d like to have a spline that is interpolating, that is, it always passes through every control point.

18 Curves 18 Continuity We want our curve to have continuity. There shouldn’t be an abrupt change when we move from one segment to the next.

19 Curves 19 Ensuring Continuity Let’s look at continuity first. Since the functions defining a Bezier curve are polynomials, all their derivatives exist and are continuous on the interior of the curve. Therefore, we only need to worry about the continuity at the endpoints of each curve segment (i.e., the joints).

20 Curves 20 Ensuring C 0 continuity First cubic Bezier segment: control points (V 0,V 1,V 2,V 3 ) Second cubic Bezier segment: control points (W 0,W 1,W 2,W 3 ) Joint is C 0 continuous. What constraint does this place on W 0,W 1,W 2,W 3 ?

21 Curves 21 Ensuring C 1 continuity First cubic Bezier segment: control points (V 0,V 1,V 2,V 3 ) Second cubic Bezier segment: control points (W 0,W 1,W 2,W 3 ) Joint is C 1 continuous. What constraint(s) does this place on (W 0,W 1,W 2,W 3 )? (refer next page)

22 Curves 22 1 st derivatives at the endpoints

23 Curves 23 2 nd derivatives at the endpoints Finally, we will want to develop C 2 splines. To do that, we will need second derivatives of Bezier curves

24 Curves 24 Ensuring C 2 continuity First cubic Bezier segment: control points (V 0,V 1,V 2,V 3 ) Second cubic Bezier segment: control points (W 0,W 1,W 2,W 3 ) Joint is C 2 continuous. What constraint(s) does this place on (W 0,W 1,W 2,W 3 )? (next page)

25 Curves 25 Ensuring C 2 Continuity Suppose we want to join two cubic Bezier curves (V 0,V 1,V 2,V 3 ) and (W 0,W 1,W 2,W 3 ) so that there is C 2 continuity at the joint.

26 Curves 26 A-frames and Continuity Let’s try to get some geometric intuition about what this last continuity equation means. V V V V W W WW

27 Curves 27 Building a complex spline Instead of specifying the Bezier control points themselves, let’s specify the corners of the A-frame in order to build a C 2 continuous spline. These are called B-splines. The B i points are called de Boor points. V0V0 V1V1 V2V2 V3V3

28 Curves 28 Constructing B-splines Here is the completed B-spline: What are the Bezier control (V) points, in terms of the de Boor points (B)? V0V0 V1V1 V2V2 V3V3 2/3 1/3 2/3 1/31/2 2/31/3 1/6 4/6 1/6 4/6

29 Curves 29 Constructing B-splines The construction of Bezier points from de Boor points can be expressed as

30 Curves 30 B-spline Properties C 2 continuity Approximating Does not interpolate de Boor points Locality For cubics, each segment are determined by 4 de Boor points. Each de Boor point determines 4 segments. Convex hull The curve lies inside the convex hull of de Boor points

31 Curves 31 Endpoints of B-splines We can see that B-splines don’t interpolate the de Boor points. It would be nice if we could at least interpolate the endpoints There is a trick to make the spline begin and end at control points, by repeating them (multiplicity = 3 for cubics)

32 Curves 32 Closing the loop What if we want a closed curve, i.e., a loop? With B-spline curves, this is easy: wrap around the points B5=B5= B6=B6= B7=B7=

33 Curves 33 Displaying B-splines Drawing B-splines is very simple: DisplayBSpline (B 0,B 1, …,B n ) for i = 0 to n-3 Convert B i, …,B i+3 into Bezier control points V 0, …, V 3 DisplayBezier(V 0,V 1,V 2,V 3 ) endfor

34 Curves 34 Conversion between different representations Bezier, Bspline are different representations of the same parametric polynomial curves They have different design control properties For example, all cubic curves can be written as

35 Curves 35 Compact Representation Place all coefficients into a matrix:

36 Curves 36 Matrix representation C can be written as a product of a basis matrix M and a geometry vector G.

37 Curves 37 Bezier cubic curves M Bezier G

38 Curves 38 B-splines Recall: the Bspline to Bezier transformation can be expressed as: Bezier representation is Substituting (1) into (2), we obtain Bspline representation: B0B0 B1B1 B2B2 B3B3 (1) (2)

39 Curves 39 Summary What to take home from the lectures on curves: The meaning of all the bold face terms Definition and properties of Bezier curves How to display Bézier curves with line segments. Meanings of C k continuities. Conditions for continuity of cubic splines. Construction of Bezier splines Definition, construction and properties of B-splines Matrix representation of curves Conversion between different representations

40 Curves 40 C 2 Interpolating Splines Interpolation is a really handy property to have. How can we keep the C 2 continuity we get with B-splines but get the interpolation property too? Idea behind C 2 interpolating splines: Suppose we want cubic Beziers connecting our data points C 0, C 1, C 2, …C m, we can set up C 2 continuity constraints and solve for the first derivative (tangent vector) D i at each C i. Once we find D i, we can compute the Bezier control points from D i (next slide). Points C i ’s are known Vectors D i ’s are unknown

41 Curves 41 Bezier curves from derivatives D’s If we know the first derivatives Di, we can compute the Bezier control points: We know: Therefore:

42 Curves 42 Finding the Derivatives D’s Set the C 2 continuity condition and solve for the unknown derivatives D’s. Equality of 2 nd derivative => unknowns knowns We know:

43 Curves 43 Finding the Derivatives D’s Here’s what we’ve got so far: How many equations are there? How many unknowns are we solving for? m - 1 m + 1

44 Curves 44 Not quite done yet! We have two additional degrees of freedom, which we can nail down by imposing 2 more conditions on the curve. There are various ways to do this. We’ll use a variant called natural C 2 interpolating splines, which requires that the second derivative to be zero at the two endpoints. This condition gives us the two additional equations we need. At the endpoint C 0, it is:

45 Curves 45 Solving for the Derivatives Let’s collect our m+1 equations into a single linear system: It’s easier to solve than it looks. We can use forward elimination to zero out everything below the diagonal, then back substitution to compute each D value.

46 Curves 46 Forward Elimination First, we eliminate the elements below the diagonal.

47 Curves 47 Back Substitution The resulting matrix is upper triangular: We can now solve for the unknowns by back substitution:

48 Curves 48 C 2 Interpolating Spline Once we’ve solved for the real D’s, we can compute Bezier control points and draw the final spline: Have we lost anything? The user cannot control the tangent directions.


Download ppt "Curves Chiew-Lan Tai. Curves 2 Reading Required Hearn & Baker, 8-8 – 8-10, 8-12 Foley, 11.2."

Similar presentations


Ads by Google