80 likes | 195 Views
Parametric Curves. CS 319 Advanced Topics in Computer Graphics John C. Hart. Coordinate Functions. x ( t ). t. Vector function p of one real parameter t 1-D explicit function curve p ( t ) = ( t , x ( t )) 2-D plane curve p ( t ) = ( x ( t ), y ( t )) 3-D space curve
E N D
Parametric Curves CS 319 Advanced Topics in Computer Graphics John C. Hart
Coordinate Functions x(t) t • Vector function p of one real parameter t • 1-D explicit function curve p(t) = (t,x(t)) • 2-D plane curve p(t) = (x(t), y(t)) • 3-D space curve p(t) = (x(t), y(t), z(t)) • Parametric curves used tointerpolate and approximate • Cross sections (2-D) • Object motion paths (3-D) • Robot joint angles (n-D) x y y p(t) = (x(t), y(t)) y(t) t = 0 t = 1 t x 0 1
Tangent p’(t) p(t) • First derivative p’(t) points in direction of tangency p’(t) = (x’(t), y’(t), z’(t)) • Direction is tangent T(t) = p’(t)/||p’(t)|| • Parametric speed: ||p’(t)|| • Numeric version (forward difference) p’(t) (p(t + t) – p(t))/t • Useful if all you have is a black box p(t) • Used to denote direction and speed • Camera motion as a space curve • Camera points in tangent direction • Rollercoaster t = 0 t = 1
Arc Length p’(t) p(t) • Arc length parameterization • Parameter s defined as parameter t where length of curve from p(0) to p(t) equals s p(s) = {p(t) : s(t) = s} • Constant velocity: ||p’(s)|| = 1 • Watch the parameter: • We will use p(s) for arc length parameterization • And p(t) for ordinary parameterization t = 0 t = 1 p(s) p’(s) s = s(0) = 0 s = s(1) = curve length
Arc Length Example • Circular helix p(t) = (r cos t, r sin t, c t) • Parameter r controls radius of spiral • Parameter c controls vertical distance between spirals • Tangent: p’(t) = (-r sin t, r cos t, c) • Squared: p’(t)p’(t) = (r2 + c2) • In this special case t has vanished • Because parameter speed is constant • Integrated: s(t) = t (r2 + c2)1/2
Curvature p(s) p’(s) r • Curvature is the rate of change of the tangent • Extrinsic Curvature • Arc length k = ||p’’(s)|| • Plane curve k = (x’(t) y’’(t) – y’(t) x’’(t))/(x’2(t)+ y’2(t))3/2 • Space curve k = ||p’(t) p’’(t)|| / |p’(t)|3 • Osculating circle • Radius of curvature r(s) = 1/k(s) • Curvature units: 1/m s = 0 s = curve length
Torsion • Torsion indicates the winding direction of a space curve t(s) = r(s)p’(s)(p’’(s) p’’’(s)) = r(s) |p’(s) p’’(s) p’’’(s)| • Positive for “right handed” curves • Negative for “left handed” curves Triple Scalar Product
Frenet Frame p(s) p’(s) p’’(s) • Tangent: T(s) = p’(s) • Already unit length since parameterized by arc length • Normal: N(s) = p’’(s)/||p’’(s)|| • Normal points “inside” curve • Also p’’(s)/k(s) or r(s) p’’(s) • Binormal: B(s) = T(s)N(s) • Points perpendicular to the winding of the curve (like torsion) • Frenet frame: (T(s),N(s),B(s)) s = 0 s = curve length Frenet Formulas