This preview shows page 1-2-3-4-5-6-7-49-50-51-52-53-54-55-98-99-100-101-102-103-104 out of 104 pages.
Parametric Curves(Part II)Jason LawrenceCS445: GraphicsAcknowledgment: slides by Misha Kazhdan, Allison Klein, Tom Funkhouser,Adam Finkelstein and David DobkinOverview• What is a Spline?• Specific Examples:oHermite SplinesoCardinal SplinesoUniform Cubic B-Splines• Comparing Cardinal Splines to Uniform Cubic B-SplinesWhat is a Spline in CG?A spline is a piecewise polynomial function whose derivatives satisfy some continuity constraints across curve boundaries.P1(x) x∈[0,1)P2(x) x∈[0,1)P3(x) x∈[0,1)What is a Spline in CG?A spline is a piecewise polynomial function whose derivatives satisfy some continuity constraints across curve boundaries.P1(1)=P2(0) P1’(1)=P2’(0)…P2(1)=P3(0) P2’(1)=P3’(0)…Overview• What is a Spline?• Specific Examples:oHermite SplinesoCardinal SplinesoUniform Cubic B-Splines• Comparing Cardinal Splines to Uniform Cubic B-SplinesSpecific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oA pair of control pointsoTangent at each control point• Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Specific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oA pair of control pointsoTangent at each control point • Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Specific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oA pair of control pointsoTangent at each control point • Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Specific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oA pair of control pointsoTangent at each control point • Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Specific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oA pair of control pointsoTangent at each control point • Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Specific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oA pair of control pointsoTangent at each control point • Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Specific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oA pair of control pointsoTangent at each control point • Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Because the end-points of adjacent curves share the same position and derivatives, the Hermite spline has C1 continuity.•Let Pk(u)=(Pk,X(u),Pk,Y(u)) with 0≤u≤1 be a parametric cubic point function for the curve section between control points pk and pk+1• Boundary conditions are:oPk(0) = pkoPk(1) = pk+1oPk’(0) = DpkoPk’(1) = Dpk+1Specific Example: Hermite Splinespkpk+1DpkDpk+1•Let Pk(u)=(Pk,X(u),Pk,Y(u)) with 0≤u≤1 be a parametric cubic point function for the curve section between control points pk and pk+1• Boundary conditions are:oPk(0) = pkoPk(1) = pk+1oPk’(0) = DpkoPk’(1) = Dpk+1•Solve for the coefficients of the polynomials Pk,X(u) and Pk,Y(u) that satisfy the boundary conditionSpecific Example: Hermite Splinespkpk+1DpkDpk+1Specific Example: Hermite SplinesWe can express the polynomials:• P(u) = au3 + bu2 +cu +d• P’(u) = 3au2 + 2bu +cusing the matrix representations:Specific Example: Hermite SplinesWe can express the polynomials:• P(u) = au3 + bu2 +cu +d• P’(u) = 3au2 + 2bu +cusing the matrix representations:By abuse of notation, we will think of the coefficients a, b, c, and d as 2-vectors rather than scalars so that P is a function taking values in 2D.Specific Example: Hermite SplinesGiven the matrix representations:Specific Example: Hermite SplinesGiven the matrix representations:we can express the values at the end-points as:Specific Example: Hermite SplinesWe can combine the equationsinto a single matrix expression:Specific Example: Hermite SplinesWe can combine the equationsinto a single matrix expression:Specific Example: Hermite SplinesInverting the matrix in the equation:we get:Specific Example: Hermite SplinesInverting the matrix in the equation:we get:Specific Example: Hermite SplinesInverting the matrix in the equation:we get:Specific Example: Hermite SplinesUsing the facts that:we get:andSpecific Example: Hermite SplinesUsing the facts that:we get:MHermiteandparameters boundary infoSpecific Example: Hermite Splinesand we can execute matrix multiplies belowto getSpecific Example: Hermite SplinesSetting:oH0(u)= 2u3-3u2+1oH1(u)=-2u3+3u2oH2(u)= u3-2u2+uoH3(u)= u3-u2we can re-write the equation:as:Specific Example: Hermite SplinesSetting:oH0(u)= 2u3-3u2+1oH1(u)=-2u3+3u2oH2(u)= u3-2u2+uoH3(u)= u3-u2Blending Functions11111111H0(u) H1(u) H2(u) H3(u)Specific Example: Hermite SplinesSetting:oH0(u)= 2u3-3u2+1oH1(u)=-2u3+3u2oH2(u)= u3-2u2+uoH3(u)= u3-u211111111H0(u) H1(u) H2(u) H3(u)When u=0:• H0(u)=1• H1(u)=0• H2(u)=0• H3(u)=0So P(0)=pkSpecific Example: Hermite SplinesSetting:oH0(u)= 2u3-3u2+1oH1(u)=-2u3+3u2oH2(u)= u3-2u2+uoH3(u)= u3-u211111111H0(u) H1(u) H2(u) H3(u)When u=1:• H0(u)=0• H1(u)=1• H2(u)=0• H3(u)=0So P(1)=pk+1Specific Example: Hermite SplinesSetting:oH0(u)= 2u3-3u2+1oH1(u)=-2u3+3u2oH2(u)= u3-2u2+uoH3(u)= u3-u211111111H0(u) H1(u) H2(u) H3(u)When u=0:• H0’(u)=0• H1’(u)=0• H2’(u)=1• H3’(u)=0So P’(0)=DpkSpecific Example: Hermite SplinesSetting:oH0(u)= 2u3-3u2+1oH1(u)=-2u3+3u2oH2(u)= u3-2u2+uoH3(u)= u3-u211111111H0(u) H1(u) H2(u) H3(u)When u=1:• H0’(u)=0• H1’(u)=0• H2’(u)=0• H3’(u)=1So P’(1)=Dpk+1Specific Example: Hermite Splines• Interpolating piecewise cubic polynomial• Specified with:oSet of control pointsoTangent at each control point • Iteratively construct the curve between adjacent end pointsp0p1p2p3p4p5Overview• What is a Spline?• Specific Examples:oHermite SplinesoCardinal SplinesoUniform Cubic B-Splines• Comparing Cardinal Splines to Uniform Cubic B-Splines• Interpolating piecewise cubic polynomial• Specified with four control points• Iteratively construct the curve between middle two points using adjacent points to define tangentsSpecific Example: Cardinal Splinesp0p1p4p5p6p7p2p3• Interpolating piecewise cubic polynomial• Specified with four control points• Iteratively construct the curve between middle two points using adjacent points to define tangentsSpecific Example: Cardinal
View Full Document