Hermite Curve

advertisement
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  nPi 1  Pi 
Hodograph
Ex: cubic Bezier curve
2
d
P(t )   Bi , 2 (t )3Pi 1  Pi 
dt
i 0
 3P1  P0 1  t   3P2  P121  t t  3P3  P2 t 2
2
P(0)  3P1  P0 
P(1)  3P3  P2 
Hence, to convert to/from Hermite curve:
P(0)  P0
P(1)  P3
P(0)  3P1  P0 
P(1)  3P3  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
Download