B-Splines Properties 1. Convex hull property 2. Curve follows the shape of the defining polygon 3. Maximum order = number of control points 4. Invariance to affine transformation 5. Variation diminishing property
B-Splines Control Handles • Knot vector (uniform, open uniform, non- uniform) • Order k • Number and position of control point
B-Splines Order k Open-uniform knot vector Control polygon B 1 B 2 B 3 B 4 B 2 B 4 k=2 k=3 k=4 B 1 B 3
B-Splines Multiple points Open uniform knot vector k=4 B 2 B 4 Control polygon B 1 B 2 B 3 B 4 B 3 B 1
B-Splines Multiple points Open uniform knot vector k=4 B 2 B 2 B 4 Control polygon B 1 B 2 B 2 B 3 B 4 B 3 B 1
B-Splines Multiple points Open uniform knot vector k=4 B 2 B 2 B 2 B 4 Control polygon B 1 B 2 B 2 B 2 B 3 B 4 B 3 B 1
B-Splines Local Control Open uniform knot vector k=4 B 5 ’ B 7 ’ B 2 B 3 B 8 B 5 ’ B 1 B 6 B 4 B 5
B-Splines Rational B-Splines n 1 + h P ( t ) B N ( t ) = ∑ i ik i 1 = Projection of a non-rational (polynomial) B-Spline in 4D into 3D
B-Splines Rational B-Splines n 1 + B N ( t ) h ∑ n 1 i ik i + P ( t ) B R ( t ) i 1 = = = ∑ n 1 i ik + h N ( t ) i 1 = ∑ i ik i 1 = h N ( t ) R ( t ) i ik = ik n 1 + h N ( t ) ∑ i ik i 1 =
B-Splines Rational B-Splines • Generalization of non-rational B-Spline basis functions and curve • Most properties and characteristics of non-rational B-spline are carry forwarded • Additional control handle of h i • Enables construction of common analytical shapes conic sections
B-Splines Rational B-Splines Invariant to projective transformation The curve is invariant with respect to the projective transformation applied to the defining vertices of the control polygon
B-Splines Rational B-Splines n+1 = 5, k = 3 X = [ 0 0 0 1 2 3 3 3 ] H = [ 1 1 h 3 1 1 ] B 4 B 2 0 1 0.5 B 1 5 B 5 B 3
B-Splines Rational B-Splines NURBS : Non Uniform Rational B-Spline Most generalized form of B-Spline Non Uniform Knot Vector Rational Basis Functions
B-Splines Curve Fitting Find a B-Spline passing through D 1 , D 2 … D j D 1 D 2 D 3
B-Splines Curve Fitting n 1 + P ( t ) B N ( t ) = ∑ i i , k i 1 = D ( t ) N ( t ) B N ( t ) B ... N ( t ) B = + + + 1 1 1 , k 1 1 2 , k 1 2 n 1 , k 1 n 1 + + D ( t ) N ( t ) B N ( t ) B ... N ( t ) B = + + + 2 2 1 , k 2 1 2 , k 2 2 n 1 , k 2 n 1 + + � D ( t ) N ( t ) B N ( t ) B ... N ( t ) B = + + + j j 1 , k j 1 2 , k j 2 n 1 , k j n 1 + +
B-Splines Curve Fitting [ ] [ ] [ ] D N B = N ( t ) … … N ( t ) ⎡ ⎤ 1 , k 1 n 1 , k 1 + ⎢ ⎥ � � � [ ] ⎢ ⎥ N = � � � ⎢ ⎥ ⎢ ⎥ N ( t ) N ( t ) … … ⎣ 1 , k j n 1 , k j ⎦ + 1 − [ ] [ ] [ ] B N D = When j = n+1 => N square matrix
B-Splines Curve Fitting [ ] [ ] [ ] D N B = T T [ ] [ ] [ ] [ ][ ] N D N N B = 1 [ ] [ ] [ ] − T T [ ] B [ ] [ ] N N N D =
B-Splines Curve Fitting Parameter value t j For l th data point l D D ∑ − s s 1 t − s 2 l l 2 = = ≥ j t max D D ∑ − s s 1 − s 2 = t 1 = 0, t max = maximum value of the knot vector
B-Splines Curve Fitting Parameter value t j D 2 D 1 D 3 D 4 D D t − 2 1 2 = t D D D D D D − + − + − max 2 1 3 2 4 3
Recommend
More recommend