Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Nurbs (1)
1.
2. NURBS
n
P(u) = ∑ wiNi,k(u)pi
i=0
n
∑ wiNi,k(u)
i=0
NURBS curve degree = k-1
P0, P1,..Pn – control points
Knot vector u = (u0, u1…um)
W= (w0, w1…wm) – weight non negative
The number of control points and the number
of weights must agree
Use homogenous coordinates
3. 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.
4. 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)
5. 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).
* Bézier curves and B-spline curves only satisfy the affine
invariance property rather than this projective invariance
property. This is because only NURBS curves involve
projective transformations.
6. 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
8. 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
P3 P1
2 1
P4 P0
9. 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
1
P0
10. 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
P2
P3
2
P4
14. 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)
15. 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
• x(u) 2 + y(u) 2 = 1 - circle radius 1 prove!!
16. 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.
17. Knot Insertion : NURBS
u0 to u3 u4 u5 to u8
0 0.5 1
EXAMPLE
a NURBS curve of degree 3 with a knot vector as follows:
5 control points in the xy-plane and weights:
Insert new knot t = 0.4
P0 P1 P2 P3 P4
X -70 -70 74 74 -40
Y -76 75 75 -77 -76
w 1 0.5 4 5 1
18. 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 -70 -35 296 370
Y -76 37.5 300 -385
w 1 0.5 4 5
21. 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
22. Knot Insertion : NURBS after
*control points in the xy-plane and weights
knot insertion
P0 Q1 Q2 Q3 P3 P4
X -70 74 51.3 -70 74 -40
Y -76 5.9 75 24.6 -77 -76
w 1 4.4 1.9 0.6 5 1
*new knot vector
u0 to u3 u4 u5 u6 to u9
0 0.4 0.5 1