Sei sulla pagina 1di 22

Non Uniform Rational B-Spline (NURBS)

disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS
P(u) = i=0 wiNi,k(u)pi n wiNi,k(u)
n

NURBS curve degree = k-1 P0, P1,..Pn control points Knot vector u = (u0, u1um) W= (w0, w1wm) weight non negative The number of control points and the number of weights must agree Use homogenous coordinates
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

i=0

NURBS
If all wi are set to the value 1 or all wi have the same value we have the standard B-Spline curve NURBS curve equation is a general form that can represent both B-Spline and NURBS curves. A Bezier curve is a special case of a B-Spline curve, so the NURBS equation can also represent Bezier and rational Bezier curves.

disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS :important properties


NURBS have all properties of B-Spline.(pls refer to the notes) Extra properties
More versatile modification of a curve becomes possible if the curve is represented by a NURBS equation. It is due to B-spline curve is modified by changing the x, y, z coord, but NURBS curve use homogenous coord (x, y, z, h) Or B-Spline (degree, control points & knots) but NURBS (degree, control points, knots & weights)
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS :important properties


Extra properties (cont)
NURBS equations can exactly represent the conic curves (circles, ellipse, parabola) Projective invariance If a projective transformation is applied to a NURBS curve, the result can be constructed from the projective images of its control points. Therefore, we do not have to transform the curve. We can obtain the correct view (no distortion). * Bzier curves and B-spline curves only satisfy the affine invariance property rather than this projective invariance property. This is because only NURBS curves involve disediakan oleh projective transformations. Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS : modifying weights


increasing the value of wi will pull the curve toward control point Pi. In fact, all affected points on the curve will also be pulled in the direction to Pi When wi approaches infinity, the curve will pass through control point Pi decreasing the value of wi will push the curve away from control point Pi
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS : modifying weights

disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS : circle
NURBS equations represents the circle
Consider a half circle Split the half circle into two circular arcs -1 and 2 (actually many ways) P2 2 P4 1 P0
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

P3

P1

NURBS : circle
Consider arc 1 Conic section (quadratic) degree = 2 3 control points, P0= (1,0) ,P1 =(1,1), P2 = (0,1) Knot value (0,0,0,1,1,1) Weights w0 =1 w1 = cos = cos 45 = 1/2 w2=1
P2 P1 P0
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS : circle
Follow the same procedure for arc 2 We obtain P2= (0,1) ,P3 =(-1,1), P4 = (-1,0) Weights w2 =1, w3 = cos 45 = 1/2, w4=1 Knot value =(0, 0, 0,1,1,1) shifted to (1, 1, 1, 2, 2, 2) for the composition
P3 2 P4
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

P2

NURBS : circle
Composite curve (arc 1 and arc 2) P0= (1,0) ,P1 =(1,1), P2 = (0,1),P3 =(-1,1), P4 = (-1,0) Weights w0 =1 w1 = 1/2 w2=1, w3 = 1/2, w4=1 k = 3, n= 4 number of knot = 8 Knot value =(0, 0, 0,1,1,1) + (1, 1, 1, 2, 2, 2) Knot value = (0, 0, 0, 1, 1, 1, 2, 2, 2) shift 1 value (0, 0, 0,1, 1, 2, 2, 2)
P3

P2 2 1

P1 P

P4

disediakan oleh Suriati Bte Sadimon 0 GMM, FSKSM, UTM, 2004

So, for a circle

NURBS : circle
P3 2 P4 P2 P1 1 P0 P8 P7

P5

P6

P0= P8= (1,0) ,P1 =(1,1), P2 = (0,1),P3 =(-1,1), P4 = (-1,0), P5 =(-1,-1), P6 =(0,-1), P7 =(1,-1) Weights w0 =1 w1 = 1/2 w2=1, w3 = 1/2, w4=1 k = 3, n= 8 number of knot = 12 (0, 0, 0,1, 1,oleh Suriati3, Sadimon 4, 4) disediakan 2, 2, Bte 3, 4,
GMM, FSKSM, UTM, 2004

NURBS : circle
Other way split into 3 arcs
= 60
P3

P2

P4

P1

P0

P5

disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS : circle
show that NURBS equations exactly represent the circle Consider arc 1 NURBS equation is
P(u) = wiNi,k(u)pi wiNi,k(u)

P(u) = w0P0N0, 3(u) + w1P1N1, 3(u) + w2P2N2, 3(u) w0N0, 3(u) + w1N1, 3(u) + w2N2, 3(u)
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

NURBS : circle
w0 = w2 =1, w1 = 2 /2 N0, 3= (1-u) 2, N1, 3= 2u(1-u), N2, 3= u2 pls refer to last topic
(Curve1.pdf, slide 30)

P(u) = P0 (1-u) 2 +2 /2[P1 2u(1-u)]+ P2 u2 (1-u) 2 +2 /2[ 2u(1-u)]+ u2 P0 = [1,0,1] P1 = [1,1,1], P2 = [0,1,1] homogenous x(u) = (1- 2) u2 +2 (1-2)u + 1 (2- 2) u2 +(2-2)u + 1 y(u) = ( 1- 2) u2 +2u . (2- 2) u2 +(2-2)u + 1 disediakan oleh Suriati Bte Sadimon x(u) 2 + y(u) 2 = 1 - circle radius 1 prove!!
GMM, FSKSM, UTM, 2004

Knot Insertion : NURBS


three steps: (1) converting the given NURBS curve in 3D to a B-spline curve in 4D (2) performing knot insertion to this four dimensional B-spline curve (3) projecting the new set of control points back to 3D to form the the new set of control points for the given NURBS curve.
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

a NURBS curve of degree 3 with a knot vector as follows: u0 to u3 u4 u5 to u8 0 0.5 1 5 control points in the xy-plane and weights: P0 P1 P2 P3 P4 X -70 -70 74 74 -40 Y -76 75 75 -77 -76 w 1 0.5 4 5 1 Insert new knot t = 0.4
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

Knot Insertion : NURBS EXAMPLE

Knot Insertion : NURBS


t= 0.4 lies in knot span [u3 ,u4) the affected control points are P3, P2, P1 and P0. 1) convert to 3D B-Spline (homogenous coord) multiply all control points with their corresponding weights Pw0 Pw1 Pw2 Pw3
X Y w -70 -76 1 -35 296 37.5 300 0.5 4 370 -385 5

disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

Knot Insertion : NURBS


2) Perform knot insertion compute a3, a2 and a1
a 3 = t - u3 = u6 -u3 a 2 = t - u2 = u5 -u2 a 1 = t u1 = u4 -u1 0.4 0 = 0.4 10 0.4 0 = 0.4 10 0.4 0 = 0.8 0.5 0

disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

Knot Insertion : NURBS


2) Perform knot insertion (cont) The new control points Qw3, Qw2 and Qw1 are: Qw3 = (1-a3)Pw2+ a3Pw3 = (325.6, 26, 4.4) Qw2 = (1-a2)Pw1+ a2Pw2 = (97.4, 142.5, 1.9) Qw1 = (1-a1)Pw0+ a1Pw1 = (-42, 14.8, 0.6)

disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

Knot Insertion : NURBS


3) Projecting these control points back to 2D by dividing the first two components with the third (the weight), Q3 = (74, 5.9 ) with weight 4.4 Q2 = (51.3, 75 ) with weight 1.9 Q1 = (-70, 24.6) with weight 0.6
disediakan oleh Suriati Bte Sadimon GMM, FSKSM, UTM, 2004

Knot Insertion : NURBS


*control points in the xy-plane and weights after knot insertion
X Y w P0 -70 -76 1 Q1 74 5.9 4.4 Q2 Q3 P3 51.3 -70 74 75 24.6 -77 1.9 0.6 5 P4 -40 -76 1

*new knot vector


u0 to u3 u4 u5 oleh 0 disediakan0.4Suriati Bte Sadimon 0.5
GMM, FSKSM, UTM, 2004

u6 to u9 1

Potrebbero piacerti anche