CS 325 Computer Graphics 04 / 30 / 2010 Instructor: Michael Eckmann.

Slides:



Advertisements
Similar presentations
Lecture Notes #11 Curves and Surfaces II
Advertisements

2002 by Jim X. Chen: Bezier Curve Bezier Curve.
Lecture 10 Curves and Surfaces I
CS 445/645 Fall 2001 Hermite and Bézier Splines. Specifying Curves Control Points –A set of points that influence the curve’s shape Knots –Control points.
© University of Wisconsin, CS559 Spring 2004
Jehee Lee Seoul National University
B-Spline Blending Functions
CS 445 / 645 Introduction to Computer Graphics Lecture 22 Hermite Splines Lecture 22 Hermite Splines.
Dr. S.M. Malaek Assistant: M. Younesi
1 Curves and Surfaces. 2 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized.
Slide 127 October 1999CS Computer Graphics (Top Changwatchai) Review of Spline Concepts Sections 10-6 to in Hearn & Baker Splines can be 2D.
Introduction We have dealt with polylines and mesh shapes. We want a way to describe curved shapes which will make them easy to draw.
Rational Bezier Curves
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 12: Spline Curves (review) Ravi Ramamoorthi Most material.
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
1 Lecture 13 Modeling Curved Lines and Surfaces. 2 Types of Surfaces Ruled Surfaces B-Splines and Bezier Curves Surfaces of Revolution.
Curves Locus of a point moving with one degree of freedom
Geometric Modeling Surfaces Mortenson Chapter 6 and Angel Chapter 9.
Cubic Bezier and B-Spline Curves
Curves Mortenson Chapter 2-5 and Angel Chapter 9
Bezier and Spline Curves and Surfaces Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Modelling: Curves Week 11, Wed Mar 23
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Curves Week 13, Mon 24 Nov 2003.
Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
1 Representing Curves and Surfaces. 2 Introduction We need smooth curves and surfaces in many applications: –model real world objects –computer-aided.
Curve Surfaces June 4, Examples of Curve Surfaces Spheres The body of a car Almost everything in nature.
CS 376 Introduction to Computer Graphics 04 / 27 / 2007 Instructor: Michael Eckmann.
Curve Modeling Bézier Curves
11/19/02 (c) 2002, University of Wisconsin, CS 559 Last Time Many, many modeling techniques –Polygon meshes –Parametric instancing –Hierarchical modeling.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Spline curves 1/23 Curves and Surfaces.
CS 376 Introduction to Computer Graphics 04 / 23 / 2007 Instructor: Michael Eckmann.
CS 376 Introduction to Computer Graphics 04 / 30 / 2007 Last Lecture :( Instructor: Michael Eckmann.
(Spline, Bezier, B-Spline)
V. Space Curves Types of curves Explicit Implicit Parametric.
Introduction to Computer Graphics with WebGL
Numerical Computation
Cornell CS465 Fall 2004 Lecture 15© 2004 Steve Marschner 1 2D Spline Curves CS 465 Lecture 15.
Quadratic Surfaces. SPLINE REPRESENTATIONS a spline is a flexible strip used to produce a smooth curve through a designated set of points. We.
CS 376 Introduction to Computer Graphics 04 / 20 / 2007 Instructor: Michael Eckmann.
INTERPOLATION & APPROXIMATION. Curve algorithm General curve shape may be generated using method of –Interpolation (also known as curve fitting) Curve.
CS 445/645 Fall 2001 Splines/Film/Animation. Final Exam Thursday, December 13 th from 7 – 10 p.m. –Room Olsson 011 You may use one sheet of notes (8.5.
Splines IV – B-spline Curves based on: Michael Gleicher: Curves, chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
Keyframing and Splines Jehee Lee Seoul National University.
COLLEGE OF ENGINEERING UNIVERSITY OF PORTO COMPUTER GRAPHICS AND INTERFACES / GRAPHICS SYSTEMS JGB / AAS Representation of Curves and Surfaces Graphics.
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
Basic Theory (for curve 02). 1.3 Parametric Curves  The main aim of computer graphics is to display an arbitrary surface so that it looks real.  The.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
Representation of Curves & Surfaces Prof. Lizhuang Ma Shanghai Jiao Tong University.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Parametric Curves & Surfaces Greg Humphreys University of Virginia CS 445, Spring.
Splines I – Curves and Properties based on: Michael Gleicher Curves, chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
Computing & Information Sciences Kansas State University Lecture 31 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 32 of 42 Wednesday, 11.
11/26/02(C) University of Wisconsin Last Time BSplines.
Parametric Curves CS 318 Interactive Computer Graphics John C. Hart.
(c) 2002 University of Wisconsin
CS 450: Computer Graphics PARAMETRIC SPLINES AND SURFACES
1 CS 430/536 Computer Graphics I B-Splines and NURBS Week 5, Lecture 9 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing.
Splines Sang Il Park Sejong University. Particle Motion A curve in 3-dimensional space World coordinates.
Rendering Bezier Curves (1) Evaluate the curve at a fixed set of parameter values and join the points with straight lines Advantage: Very simple Disadvantages:
Curves University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner.
Object Modeling: Curves and Surfaces CEng 477 Introduction to Computer Graphics.
Introduction to Parametric Curve and Surface Modeling.
© University of Wisconsin, CS559 Spring 2004
Curve & Surface.
Representation of Curves & Surfaces
© University of Wisconsin, CS559 Fall 2004
© University of Wisconsin, CS559 Fall 2004
© University of Wisconsin, CS559 Spring 2004
Three-Dimensional Object Representation
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

CS 325 Computer Graphics 04 / 30 / 2010 Instructor: Michael Eckmann

Michael Eckmann - Skidmore College - CS Spring 2010 Today’s Topics Questions? Polygonal meshes Piecewise Cubic Parametric curves –General description and concept –Hermite –Bezier –Spline

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Polygonal Meshes A collection of edges, vertices and polygons –which are connected –and where each edge is shared by at most 2 polygons (example on board)‏ –each vertex is shared by at least 2 edges When polygonal meshes are created interactively –care must be taken to make sure that the above constraints are fulfilled. Different ways to store a polygonal mesh have consequences on –space (to store the mesh data)‏ –and time (to operate on the polygonal mesh)‏

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Polygonal Meshes Some operations that are common on polygonal meshes –find all edges containing a particular vertex –find all the polygons sharing a particular edge or vertex –find the two vertices for an edge –find all the edges of a polygon –determining if all the conditions of a polygonal mesh are met How the polygonal mesh is represented has consequences on the speed of those operations and on how much space is needed to store a polygonal mesh.

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Polygonal Meshes Representation schemes: –represent each polygon as a list of vertices in order around the polygon edges exist between each pair of successive vertices as well as between the last and the first efficient in space for a single polygon inefficient in space for a polygonal mesh, why? interactively working on a polygonal mesh represented this way would be time consuming (e.g. move a vertex --- need to find all the polygons that contain it and move it...)‏ etc. –store all the vertices in a list, and represent a polygon as an ordered list of pointers into the vertex list. more efficient in space for a polygonal mesh move a vertex --- moves it for all polygons that contain it still hard to find all polygons that share an edge

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Polygonal Meshes Representation schemes: –store all the vertices in a list, and all the edges in an edge list* and represent a polygon as an ordered list of pointers into the edge list * edge list contains pointers to two vertices and pointers to one or two polygons can easily find all polys that share an edge now In all 3 representation schemes just described it is still not easy to find all the edges containing a particular vertex –in the description of a vertex, could add pointers to all the edges

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves Some motivations for having mathematical equations define curves and surfaces (see section 8-8 Spline Representations in our text). 1) polylines and polygons are 1 st degree piecewise linear approximations to curves and surfaces (they are approximations unless they are the exact description of the outline or shape)‏ –if they are approximations, then it takes large numbers of points to describe them for more accurate representations == BAD –if interactively building these surfaces (or edges/outlines) then the more points, the more tedious it is to build We want to be able to get more accurate representations of curved surfaces (or edges/outlines) than polygons or polylines give us AND we want to be able to represent them with less points. This will benefit us by having less storage and being able to be built interactively more easily.

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves These smooth curves are also used in graphics for other purposes like describing a motion path for an animation sequence.

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves Let's consider 2d dimensional curves which can be later generalized to 3d surfaces. Instead of using piecewise linear functions, we use piecewise smooth curves. These are of a higher degree than linear functions. We have several choices –a) we can use functions like y = f(x) problem that for each value of x there is one and only one y value –can't represent circles/ellipses etc. problem that you can't represent vertical lines and is problematic to represent curves with a tangent/slope of infinity –b) we can use implicit equations like f(x,y) = 0 (e.g. a circle of radius 1 like: x 2 + y 2 – 1 = 0)‏ may have more solutions than we want --- e.g. to model half a circle you'd need constraints on the values of x or y or both. joining 2 implicitly defined curves is hard to make the tangents at the join point agree (why might we want that? -- example on board)‏

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves We have several choices –c) we can use parametric equations of the curve x = f(t) and y = g(t)‏ –where f(t) and g(t) are typically cubic polynomials the problems of the other 2 choices are solved as we shall see –we typically use cubic polynomials because 1) quadratic or linear polynomials do not allow a curve segment to be described with 2 endpoints and specific slopes at the 2 endpoints (examples on the board)‏ 2) higher degree (than 3) polynomials are more compute intensive and allow (possibly) unwanted artefacts in the curve A cubic polynomial to define a finite curve segment has 4 coefficients per parametric equation x(t) = a x t 3 + b x t 2 + c x t + d x y(t) = a y t 3 + b y t 2 + c y t + d y z(t) = a z t 3 + b z t 2 + c z t + d z where 0 <= t <= 1

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves x(t) = a x t 3 + b x t 2 + c x t + d x y(t) = a y t 3 + b y t 2 + c y t + d y z(t) = a z t 3 + b z t 2 + c z t + d z where 0 <= t <= 1 can be written in matrix form as: Q(t) = [x(t) y(t) z(t)] = T C where T = [t 3 t 2 t 1] and [a x a y a z ] C = [b x b y b z ] [c x c y c z ] [d x d y d z ]

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves We specify these curves by a set of control points. Polynomial sections can be fit together so that all the control points are connected which is called interpolated. Polynomial sections can be fit together so that some or none of the control points are connected which is called approximated. Examples of these on the next two slides.

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves Continuity - when joining two curve segments together (piecewise curves). There are several different kinds of continuity to consider Geometric continuity –G 0 geometric continuity = the curve segments are joined together –G 1 geometric continuity = the curve segments are joined together and the directions of tangent vectors are equal at the point where they are joined Parametric continuity –C 0 parametric continuity = same as G 0 geometric continuity –C 1 parametric continuity = the curve segments are joined together and the directions AND magnitudes of tangent vectors are equal at the point where they are joined –C k parametric continuity = the curve segments are joined together and the directions AND magnitudes of all the derivatives up to the k th are equal at the point where they are joined (that is, the 1 st through k th derivatives exist and are continuous themselves)‏

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves Let me draw on the board some example joined curve segments and point out their continuity. See page 422 in text.

Michael Eckmann - Skidmore College - CS325 - Spring 2010 Curves There are several families of cubic polynomial curve segments that are determined by different things –Hermite determined by the 2 endpoints and the tangent vector at each of the 2 endpoints –Bezier determined by the 2 endpoints P 1 & P 4 and 2 other intermediate points P 2 & P 3 not on the curve –the tangent vectors at the end points are the vectors P 1 P 2 and P 3 P 4 –which are [P 2 – P 1 ] and [P 4 – P 3 ] –Spline determined by 4 specific points Note: there can be higher degree polynomials of these families of curves (see a few slides ahead for a 4 th degree polynomial Bezier curve segment)‏

Bezier Curve segment examples

more Bezier Curve segment examples

Michael Eckmann - Skidmore College - CS Spring 2007 Recall x(t) = a x t 3 + b x t 2 + c x t + d x y(t) = a y t 3 + b y t 2 + c y t + d y z(t) = a z t 3 + b z t 2 + c z t + d z where 0 <= t <= 1 can be written in matrix form as: Q(t) = [x(t) y(t) z(t)] = T C where T = [t 3 t 2 t 1] and [a x a y a z ] C = [b x b y b z ] [c x c y c z ] [d x d y d z ]

Michael Eckmann - Skidmore College - CS Spring 2007 Basis Matrix and Geometry Matrix Q(t) = [x(t) y(t) z(t)] = T C where T = [t 3 t 2 t 1] and [a x a y a z ] C = [b x b y b z ] [c x c y c z ] [d x d y d z ] can be rewritten so that C = M G where –M is a 4x4 matrix called the Basis Matrix and –G is a 4x1 column vector called the Geometry Matrix so Q(t) = T M G

Michael Eckmann - Skidmore College - CS Spring 2007 Basis Matrix and Geometry Matrix Q(t) = [x(t) y(t) z(t)] = T M G where T = [t 3 t 2 t 1] and [m 11 m 12 m 13 m 14 ] M = [m 21 m 22 m 23 m 24 ] [m 31 m 32 m 33 m 34 ] [m 41 m 42 m 43 m 44 ] [G 1 ] G = [G 2 ] [G 3 ] [G 4 ] Note: the values of G i are the conditions that define the curve --- such as endpoints and tangent vectors at those end points

Michael Eckmann - Skidmore College - CS Spring 2007 Blending functions look at x(t) x(t) = (t 3 m 11 + t 2 m 21 + t m 31 + m 41 )g 1x + (t 3 m 12 + t 2 m 22 + t m 32 + m 42 )g 2x + (t 3 m 13 + t 2 m 23 + t m 33 + m 43 )g 3x + (t 3 m 14 + t 2 m 24 + t m 34 + m 44 )g 4x where g 1x is the x coordinate of G 1 similar equations for y(t) and z(t)‏ the curve is a weighted sum of the elements of the Geometry Matrix where the weights are cubic polynomials of t which are called the Blending Functions the Blending Functions B are given by B = T M, since Q(t) = T M G, Q(t) = B G

Michael Eckmann - Skidmore College - CS Spring 2007 Example with lines Before going through an example to find the blending functions from a set of geometry information for parametric cubic polynomials, let's first see how the procedure works with determining the blending functions of a parametric line.

Michael Eckmann - Skidmore College - CS Spring 2007 Example with lines Recall the parametric equation of a line: x(t) = x 0 + t ( x end – x 0 )‏ y(t) = y 0 + t ( y end – y 0 )‏ z(t) = z 0 + t ( z end – z 0 )‏ what are the endpoints of the line segment described above? can be rewritten as: x(t) = a x t + b x y(t) = a y t + b y y(t) = a z t + b z

Michael Eckmann - Skidmore College - CS Spring 2007 x(t) = a x t + b x y(t) = a y t + b y y(t) = a z t + b z To get this in the form of Q(t) = T C = T M G T = [ t 1 ] and C = [ a x a y a z ] [ b x b y b z ] C = M G where M = [ m 11 m 12 ] and G = [ g 1x g 1y g 1z ] [ m 21 m 22 ] [ g 2x g 2y g 2z ] Example with lines

Michael Eckmann - Skidmore College - CS Spring 2007 The geometry matrix is simply the two endpoints G = [ G 1 ] = [ g 1x g 1y g 1z ] = [ x 0 y 0 z 0 ] = [ P 0 ] [ G 2 ] [ g 2x g 2y g 2z ] [ x end y end z end ] [ P 1 ] we need to find out the Basis Matrix M M = [ m 11 m 12 ] [ m 21 m 22 ] Q(t) = T M G = [ t 1 ] M G Let's do the rest on the board to figure out M Example with lines

Michael Eckmann - Skidmore College - CS Spring 2007 Q(t) = [ t 1 ] M G when t=0, Q(0) is the first endpoint G 1 when t=1, Q(1) is the first endpoint G 2 Q(0) = G 1 = [ 0 1 ] M G and Q(1) = G 2 = [ 1 1 ] M G [ G 1 ] = [ 0 1 ] M [ G 1 ] [ G 2 ] [ 1 1 ] [ G 2 ] Therefore, [ 0 1 ] M = I (the identity matrix)‏ [ 1 1 ] So, to get M, take the inverse of [ 0 1 ] [ 1 1 ] Example with lines

Michael Eckmann - Skidmore College - CS Spring 2007 So, to get M, take the inverse of [ 0 1 ] [ 1 1 ] The inverse of a 2x2 invertible matrix A = [ a 11 a 12 ] = [ a 21 a 22 ] 1 [ a 22 -a 12 ] [ -a 21 a 11 ] a 11 a 22 - a 12 a 21 So, M = (1 / (0-1)) [1 -1] = -1 [1 -1] = [ -1 1 ] [-1 0] [-1 0] [ 1 0 ] Example with lines

Michael Eckmann - Skidmore College - CS Spring 2007 Q(t) = T M G = [ t 1 ] M G = [ t 1 ] [ -1 1 ] G [ 1 0 ] Recall that T M are the blending functions. What then, are the blending functions of lines? Let's plot them on the board. Example with lines

Michael Eckmann - Skidmore College - CS Spring 2007 Q(t) = T C = T M G = [ t 3 t 2 t 1 ] M G M is the 4x4 Basis matrix and G is the Geometry matrix For Hermite curve segments, recall that they are defined with 2 endpoints and the tangents at those endpoints. So, the Geometry matrix is made up of the 2 endpoints and the 2 tangent vectors. The tangent vectors are determined by the derivative of the curve with respect to t at each of the end points (when t=0 and when t=1). x(t) = a x t 3 + b x t 2 + c x t + d x y(t) = a y t 3 + b y t 2 + c y t + d y z(t) = a z t 3 + b z t 2 + c z t + d z where 0 <= t <= 1 x'(t) = 3a x t 2 + 2b x t + c x y'(t) = 3a y t 2 + 2b y t + c y z'(t) = 3a z t 2 + 2b z t + c z Hermite Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 x'(t) = 3a x t 2 + 2b x t + c x y'(t) = 3a y t 2 + 2b y t + c y z'(t) = 3a z t 2 + 2b z t + c z So, Q'(t) = [ 3t 2 2t 1 0 ] C agreed? Let's call the 2 endpoints in the Geometry Matrix P 1 and P 4 and the 2 tangent vectors at those 2 endpoints R 1 and R 4. [ P 1 ] G = [ P 4 ] [ R 1 ] [ R 4 ] Hermite Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 Let's just work with the x coordinates (the y and z coordinates will be handled similarly)‏ So, x(t) = a x t 3 + b x t 2 + c x t + d x = T C x = [ t 3 t 2 t 1 ] M G x and x'(t) = 3a x t 2 + 2b x t + c x = T C x = [ 3t 2 2t 1 0 ] M G x when t = 0, x(t) gets us the first endpoint and when t = 1, x(t) gets us the other endpoint. x(0) = P 1x = [ ] M G x x(1) = P 4x = [ ] M G x when t = 0, x'(t) gets us the tangent at the first endpoint and when t = 1, x'(t) gets us the tangent at the other endpoint. x'(0) = R 1x = [ ] M G x x'(1) = R 4x = [ ] M G x Hermite Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 [P 1 ] [ ] [P 4 ] = G x = [ ] M G x [R 1 ] [ ] [R 4 ] x [ ] just like when we solved for M (the basis matrix) with the line equations, we do the same thing here because clearly [ ] [ ] M = Identity [ ] [ ] so, that matrix on the left is equal to M -1 Hermite Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 There are techniques to get the inverse of a matrix which we won't go into here --- if you've had linear algebra, you should know how. The inverse of [ ] [ ] [ ] [ ] is [ ] [ ] [ ] [ ] This is the Basis Matrix for Hermite curve segments. Let's verify that it is indeed the inverse of the matrix above. How? Hermite Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 [ ] T M = [ t 3 t 2 t 1 ] [ ] [ ] [ ] The blending functions are: 2 t 3 - 3t t 3 + 3t 2 t 3 - 2t 2 + t t 3 - t 2 These are respectively multiplied by P 1, P 4, R 1, and R 4 and then added together to get Q(t) which is the curve Hermite Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 [ P 1 ] G 1 = [ P 4 ] [ R 1 ] [ R 4 ] [ P 4 ] G 2 = [ P 7 ] [ kR 4 ] [ R 7 ] If two Hermite curve segments have the above geometry matrices then we can see that they join up at P 4 and that the tangent vectors at P 4 are proportional, hence giving G 1 continuity. If k=1 then C 1 continuity. Using the Geometry matrices to join curves together

Michael Eckmann - Skidmore College - CS Spring 2007 As stated earlier, the pieces of information defining a Bezier curve are 4 points. Therefore, the Geometry Matrix are these 4 points. P 1 and P 4 are the endpoints and P 2 and P 3 are the intermediate points that do not necessarily (usually don't) live on the curve. R 1 (the tangent at the first endpoint) = 3 [P 2 – P 1 ] R 4 (the tangent at the other endpoint) = 3 [P 4 – P 3 ] [ P 1 ] G = [ P 2 ] [ P 3 ] [ P 4 ] Q(t) = [ t 3 t 2 t 1 ] M G Bezier Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 The Basis Matrix M for Bezier curves is: [ ] [ ] [ ] [ ] Q(t) = [ t 3 t 2 t 1 ] M G So, what are the blending functions? Bezier Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 The Blending functions are: -t 3 + 3t 2 -3t + 1 3t 3 + 6t 2 + 3t -3t 3 + 3t 2 t 3 These functions are the Bernstein polynomials which are of the form: C(n, k) t k (1 – t ) n-k where C(n,k) is the choose function. C(n,k) = n! / (k! ((n-k)!))‏ In the case where n=3 (cubic), we have k among 0,1,2,3, which gives one function per geometric element (point.)‏ Bezier Basis Matrix and Blending Functions

Michael Eckmann - Skidmore College - CS Spring 2007 A nice feature of Bezier curves is: –Because the blending functions are symmetric to the lines t and 1-t, the sequence of points used to define a Bezier curve can be reversed without changing the shape of the curve. Both Bezier and Hermite curves are easy to make have G 1 or C 1 continuity at all the join points. It is not easy though to get C 2 continuity at the join points for Hermite and Bezier curves. Hermite and Bezier curves interpolate the points (that is, the curves go through the points). Splines are C 2 continuous. Bezier/Hermite Curves vs. Splines

Michael Eckmann - Skidmore College - CS Spring 2007 Splines are C 2 continuous. Natural cubic splines interpolate the control points and the coefficients of a natural cubic spline are dependent on all n control points. –expensive to invert an n+1 by n+1 matrix –moving one control point affects the entire curve B-splines are defined by m+1 control points, where m>=3. The control points are named P 0 through P m. –There are m-2 cubic polynomial, C 2 continuous curve segments joined together. These segments are named Q 3 through Q m. –The join points (as well as the endpoints) of the B-spline are called knots. There are m-1 knots. –moving one control point has only a local effect (that is a good thing)‏ –clearly the B-splines approximate (not interpolate) the control points –Let's look at the handout Splines

Michael Eckmann - Skidmore College - CS Spring 2007 Uniform = spacing between knots are equal (that is the difference in t between knots is uniform)‏ –the blending functions for each segment have the same shape but are shifted Nonuniform = spacing between knots are unequal –more flexibility to control the curve shape than uniform –2 or more consecutive knots that are the same reduce the continuity there (e.g., if we have 0 difference between 2 or more knots then continuity is reduced by 1 (i.e., C 2 -> C 1 continuity))‏ Rational = each spline curve segment is defined as a ratio of polynomials –are invariant under rotation, scaling, translation AND perspective transformations of the control points. So, we apply the perspective transform to the control points and then generate the perspectively transformed curve from the transformed control points to obtain the correct view of the curve. –in addition to the myriad of curves that can be produced, they can precisely define the conic sections (e.g. circle, ellipse, parabola, hyperbola)‏ NURBS = NonUniform Rational B-Splines B-Splines

Michael Eckmann - Skidmore College - CS Spring 2007 NURBS = NonUniform Rational B-Splines –used frequently in graphics packages due to the properties just described Nonrational = each spline curve segment is defined as a polynomial (not a ratio of polynomials)‏ –has the disadvantage (compared to rational B-splines) that they are not invariant to perspective transformations as well as cannot precisely describe the conics B-Splines

Michael Eckmann - Skidmore College - CS Spring 2007 Recall that we defined parametric cubic curves as Q(t) = T M G. For surfaces we define a parametric cubic surface with two parameters, hence Q(s,t)‏ for some particular value of s, say s 1, Q(s 1,t) is a parametric curve. Also, for some particular value of t, say t 1, Q(s,t 1 ) is a parametric curve. [ G 1 (t) ] Q(s,t) = S M G(t) = S M [ G 2 (t) ] [ G 3 (t) ] [ G 4 (t) ] Curve Surfaces