Parametric Curves Ref: 1, 2 Outline Hermite curves Bezier curves Catmull-Rom splines Frames along the curve Hermite Curves 3D curve of polynomial bases Geometrically defined by position and tangents of end points Able to construct C1 composite curve In CG, often used as the trace for camera with Frenet frame, or rotationminimizing frame Math … h1(s) = 2s3 - 3s2 + 1 h2(s) = -2s3 + 3s2 h3(s) = s3 - 2s2 + s h4(s) = s3 - s2 P(s) = P1h1(s) + P2h2(s) + T1h3(s) + T2h4(s) P’(s)=P1h1’(s) + P2h2’(s) + T1h3’(s) + T2h4’(s) h1’ = 6s2-6s h2’ = -6s2+6s h3’= 3s2-4s+1 h4’= 3s2 – 2s P(0)= P1, P(1)=P2; P’(0)=T1, P’(1)=T2 Blending Functions h1(s) h2(s) At s = 0: h1 = 1, h2 = h3 = h4 = 0 h1’ = h2’ = h4’ = 0, h3’ = 1 At s = 1: h1 = h3 = h4 = 0, h2 = 1 h1’ = h2’ = h3’ = 0, h4’ = 1 h3(s) h4(s) P(0) = P1 P’(0) = T1 P(1) = P2 P’(1) = T2 C1 Composite Curve P(t) Q(t) R(t) More on Continuity Composite Curve t1 t3 P(t) Q(t) t0 R(t) t2 Each subcurve is defined in [0,1]. The whole curve (PQR) can be defined from [0,3] To evaluate the position (and tangent) Close Relatives Bezier curves Catmull-Rom splines Bezier Curve (cubic, ref) Defined by four control points de Casteljau algorithm (engineer at Citroën) Bezier Curve (cont) Also invented by Pierre Bézier (engineer of Renault) Blending function: Bernstein polynomial Can be of any degree Degree n has (n+1) control points First Derivative of Bezier Curves (ref) Degree-n Bezier curve Bernstein polynomial Derivative of Bernstein polynomial First derivative of Bezier curve Qi nPi 1 Pi Hodograph Ex: cubic Bezier curve 2 d P(t ) Bi , 2 (t )3Pi 1 Pi dt i 0 3P1 P0 1 t 3P2 P121 t t 3P3 P2 t 2 2 P(0) 3P1 P0 P(1) 3P3 P2 Hence, to convert to/from Hermite curve: P(0) P0 P(1) P3 P(0) 3P1 P0 P(1) 3P3 P2 p0 1 p 0 1 p0 3 p1 0 0 P0 0 0 1 P1 3 0 0 P2 0 3 3 P3 0 0 P0 1 P 1 1 P2 0 P3 0 0 0 0 13 1 0 1 0 0 p0 0 p1 1 p0 3 0 p1 C1 Composite Bezier Curves Bezier Curve Fitting From Graphics Gems (code) Input: digitized data points in R2 Output: composite Bezier curves in specified error Bezier Marching A path made of composite Bezier curves Generate a sequence of points along the path with nearly constant step size Adjust the parametric increment according to (approximated) arc length Catmull-Rom spline (1974, ref) Given n+1 control points {P0,…,Pn}, we wish to find a curve that interpolates these control points (i.e. passes through them all), and is local in nature (i.e. if one of the control points is moved, it only affects the curve locally). We define the curve on each segment [Pi,Pi+1] by using the two control points, and specifying the tangent to the curve at each control point to be (Pi+1–Pi-1)/2 and (Pi+2–Pi)/2 Tangents in first and last segments are defined differently PowerPoint Line Tool … Gives you a Catmull-Rom spline, open or close. Ex: Catmull-Rom Curves Reference Frames Along the Curve Applications generalized cylinder Cinematography Frenet frames Rotation minimizing frame Generalized Cylinder Frenet Frame (Farin) tangent vector Unit vectors binormal vector main normal vector : cross product Frenet Frame (arc-length parameterization) In this notation, the curve is r(s) Frenet-Serret Formula Orthonormal expansion Express T’N’B’ (change rate of TNB) in terms of TNB Frenet-Serret Formula (cont) In general parameterization r(t) Curvature and torsion r(t)=(x(t),y(t)) Geometric Meaning of k and t curvature x(s+Ds) (s) Da: angle between t(s) and t(s+Ds) Db: angle between b(s) and b(s+Ds) More result on this reference torsion Frenet Frame Problem Problem: vanishing second derivative at inflection points (vanishing normal) Rotation Minimizing Frame (ref) Use the second derivative to define the first frame (if zero, set N0 to any vector T0) Compute all subsequent Ti; find a rotation from Ti-1 to Ti; rotate Ni and Bi accordingly If no rotation, use the same frame Continuity Geometric Continuity A curve can be described as having Gn continuity, n being the increasing measure of smoothness. G0: The curves touch at the join point. G1: The curves also share a common tangent direction at the join point. G2: The curves also share a common center of curvature at the join point. Parametric Continuity C0: curves are joined C1: first derivatives are equal C2: first and second derivatives are equal Cn: first through nth derivatives are equal BACK