Curves: B-splines Part 1

29
Curves B-Splines Bezier Curve There is no local control (change of one control point affects the whole curve) Degree of curve is fixed by the number of control points

Transcript of Curves: B-splines Part 1

Page 1: Curves: B-splines Part 1

CurvesB-Splines

Bezier Curve

There is no local control (change of one controlpoint affects the whole curve)

Degree of curve is fixed by the number ofcontrol points

Page 2: Curves: B-splines Part 1

CurvesB-Splines

Each control point is associated with a uniquebasis function

Each point affects the shape of the curve overa range of parameter values where the basisfunction is non-zero

local control

Page 3: Curves: B-splines Part 1

CurvesB-Splines

B3

B2

x0

B0

B1

Q0 Q2

Q1

x1x2

x3

Control PointKnot Point

Q0:B0 B1 B2 B3Q1:B1 B2 B3 B4

Parameter t is defined asxi<t<xi+1

x0 x1 x2 x3: Knot values(knot vector)

Page 4: Curves: B-splines Part 1

CurvesB-Splines

Polynomial spline function of order k (degree k-1)

12)()( maxmin

1

1, +≤≤

≤≤= ∑

+

= nkttt

tNBtPn

ikii

Bi : Control pointNik : Basis function

Page 5: Curves: B-splines Part 1

CurvesB-Splines

Cox-de Boor Recursive Formula

xi’s are the knot values xi<xi+1

1

1,1

1

1,,

11,

)()()()()(

0

1)(

++

−++

−+

+

−−

+−

−=

<≤

=

iki

kiki

iki

kiiki

iii

xx

tNtx

xx

tNxttN

otherwise

xtxtN

Page 6: Curves: B-splines Part 1

CurvesB-Splines

Properties• Partition of Unity

• Covex hull property

0,1)( ,

1

1, ≥=∑

+

=ki

n

iki NtN

Page 7: Curves: B-splines Part 1

CurvesB-Splines

Convex hull property

For a B-Spline curve of order k (degree k-1) a point on the curve lies within the convex hull of k neighboring points

All points of B-Spline curve must lie within the union of all such convex hulls

Page 8: Curves: B-splines Part 1

CurvesB-Splines

Convex hull property

K=2

Page 9: Curves: B-splines Part 1

CurvesB-Splines

K=3

Convex hull property

Page 10: Curves: B-splines Part 1

CurvesB-Splines

K=3

Convex hull property

Page 11: Curves: B-splines Part 1

CurvesB-Splines

K=3

Convex hull property

Page 12: Curves: B-splines Part 1

CurvesB-Splines

K=3

Convex hull property

Page 13: Curves: B-splines Part 1

CurvesB-Splines

Convex hull property

K=8

Page 14: Curves: B-splines Part 1

CurvesB-Splines

Convex hull property

K=8

Page 15: Curves: B-splines Part 1

CurvesB-Splines

Cox-de Boor Recursive Formula

xi’s are the knot values xi<xi+1

1

1,1

1

1,,

11,

)()()()()(

0

1)(

++

−++

−+

+

−−

+−

−=

<≤

=

iki

kiki

iki

kiiki

iii

xx

tNtx

xx

tNxttN

otherwise

xtxtN

Page 16: Curves: B-splines Part 1

CurvesB-Splines

Examplen+1 = 4, k = 3

7441

3,43,1

xxxx

NN

−−−−↓↓↓↓

L

knot vector [x1 x2 … x7]

span xx for value zero nonhas Nk1n values knot Total

kiiik +→++=

Page 17: Curves: B-splines Part 1

CurvesB-Splines

Knot vector X can be:

Uniform (periodic)Open-UniformNon-Uniform

Page 18: Curves: B-splines Part 1

CurvesB-Splines

Uniform (Periodic)Individual knot values are evenly spaced

e.g. [ 0 1 2 3 4 ] [ -0.2 -0.1 0 0.1 0.2 ] [ 0 0.25 0.5 0.75 1 ]

Page 19: Curves: B-splines Part 1

CurvesB-Splines

OpenHas multiplicity of knot values at ends equal to

the order k of the B-Spline basis function. Internal Knotvalues are evenly spaced

e.g. k=2 [ 0 0 1 2 3 4 4 ] k=3 [ 0 0 0 1 2 3 3 3 ] k=4 [ 0 0 0 0 1 2 2 2 2 ]

Page 20: Curves: B-splines Part 1

CurvesB-Splines

Non-UniformUnequal internal spacing and/or multiple internalknot(s)

e.g. [ 0 0.28 0.5 0.72 1 ] [ 0 0 0 1 1 2 2 2 ] [ 0 1 2 2 3 4 ]

Page 21: Curves: B-splines Part 1

CurvesB-Splines

Uniform (Periodic)Uniform Knot vectors yields periodic uniformbasis functionsNi,k(t) = Ni-1,k(t-1) = Ni+1,k(t+1)

1

0 1 2 3 4 5 6

N1,3 N2,3 N3,3 N4,3 X = [ 0 1 2 3 4 5 6 ]

n +1 = 4

k = 3

Page 22: Curves: B-splines Part 1

CurvesB-Splines

13

2,13

2

2,3,

)()()()()(

++

++

+ −−

+−

−=

ii

ii

ii

iii xx

tNtx

xx

tNxttN

For k=3, n+1 = 4

Cox-de Boor Recursive Formula

Uniform (Periodic)

Page 23: Curves: B-splines Part 1

CurvesB-Splines

23

1,23

!2

1,11

12

1,12

1

1,

13

2,13

2

2,

3,

)()()()()()()()(

)()()()(

)(

++

++

++

++

++

++

+

++

++

+

−−

−−

−−

−−

−−

−−

ii

ii

ii

ii

ii

ii

ii

ii

ii

ii

ii

ii

i

xx

tNtx

xx

tNxt

xx

tNtx

xx

tNxt

xx

tNtx

xx

tNxt

tN

Uniform (Periodic)

Page 24: Curves: B-splines Part 1

CurvesB-Splines

Uniform (Periodic)

0 1 2 3 4 5 6

1N11 N21 N31 N41 N51 N61

Page 25: Curves: B-splines Part 1

CurvesB-Splines

Uniform (Periodic)

0 1 2 3 4 5 6

1 N52N12 N32N22 N42

Page 26: Curves: B-splines Part 1

CurvesB-Splines

Uniform (Periodic)

0 1 2 3 4 5 6

1N52N12 N32N22

Page 27: Curves: B-splines Part 1

CurvesB-Splines

Uniform (Periodic)

0 1 2 3 4 5 6

1N52N12 N32N22

Page 28: Curves: B-splines Part 1

CurvesB-Splines

Open knot vector

1kni2n2 knx1ni1k kix

kx1 x

i

i

ii

++≤≤++−=+≤≤+−=

≤≤= 0

[ ]

k k

Page 29: Curves: B-splines Part 1

CurvesB-Splines

Open knot vector

When k=n+1 Bezier Curveif n+1 = 4 = k knot vector = [0 0 0 0 1 1 1 1]

33

34,4

32

24,3

31

24,2

30

34,1

)(

)1(3)(

)1(3)(

)1()(

JttN

JtttN

JtttN

JttN

==

=−=

=−=

=−=

t 10

130J

31J 3

2J

33J