Page 1
Đường cong trong không gian Đường cong - Curve 3D CURVE Why use curves? Quỹ đạo chuyển động của 1 điểm trong không gian Đường cong biểu diễn Điểm -curve represents points: Điểm Biểu diễnvà kiểm soát đường cong -Points represent- and control-the curve. Cách tiếp cận này là cơ sở của lĩnh vực Computer Aided Geometric Design (CAGD). (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 2 Phân loại Biểu diễn Đường cong Trên cơ sở ràng buộc giữa điểm và đường trong cả ứng dụng khoa học và Tường minh y=f(x) thiết kế ta co thể phân làm 2 loại: y = f(x), z = g(x) impossible to get multiple values for a single Xấp xỉ-Approximation - x • break curves like circles and ellipses into segments not invariant with rotation Được ứng dụng trong mô hình hoá hình học • rotation might require further segment breaking Nội suy-Interpolation problem with curves with vertical tangents • infinite slope is difficult to represent Không tường minh f(x,y)=0 - Implicit equations: f(x,y,z) = 0 Trong thiết kế nôi suy là cần thiết với các đối tượng nhưng không phù hợp equation may have more solutions than we với các đối tượng có hình dáng bất kỳ "free form“. want • circle: x² + y² = 1, half circle: ? problem to join curve segments together • difficult to determine if their tangent directions agree at their joint point (c) SE/FIT/HUT 2002 3 (c) SE/FIT/HUT 2002 4 Đường cong tham biến Parametric Curves Biểu diễn các đường cong tham biến Parametric representation: We have seen the parametric form for a line: x = x(t), y = y(t), z = z(t) x = x t +(1−t)x overcomes problems with explicit and implicit forms 0 1 no geometric slopes (which may be infinite) y = y t +(1−t)y parametric tangent vectors instead (never infinite) 0 1 a curve is approximated by a piecewise polynomial curve z = z t +(1−t)z Note that x, y and z are each given by an equation that0 1 Define a parameter space 1D for curves involves: 2D for surfaces The parameter t Define a mapping from parameter space to 3D points A function that takes parameter values and gives back 3D points Some user specified control points, x and x 0 1 The result is a parametric curve or surface This is an example of a parametric curve Mapping F :t → (x, y, z) 0 1 t (c) SE/FIT/HUT 2002 5 (c) SE/FIT/HUT 2002 6 goupee.com fb.com/groups/goupee
Page 2
Đường cong đa thức bậc ba Đường cong bậc 3 Phải đảm bảo là đường cong không gian với 3 trục toạ độ x, y, z x = a + b u + c u + d u 2 3 tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý 1 1 1 1 y = a + b u + c u2 + d u3 muốn xuất hiện ở những đường đa thức bậc cao 2 2 2 2 z = a + b u + c u2 + d u3 Why cubic? 3 3 3 3 Với 3 điểm P0, P1, P2, P3 phương trình xác định P'1 p3 P1 p2 P'0 P1 P0 P0 (c) SE/FIT/HUT 2002 7 (c) SE/FIT/HUT 2002 8 Hermite Spline Đường cong Hermite A spline is a parametric curve defined by control points p = p(u) = k + k u + k u2 + k u3 0 1 2 3 The term spline dates from engineering drawing, where a spline was a piece p(u) = ∑kiui i∈n of flexible wood used to draw smooth curves The control points are adjusted by the user to control the shape of the curve Phương pháp Hermite dựa trên cơ sở của cách biểu diễn Ferguson hay Coons p và p ta có hai độ dốc p ’ và p ’ với u = 0 và u = 1 tại hai năm 60 0 1 0 1 điểm đầu cuối của đoạn [0,1]. A Hermite spline is a curve for which the user provides: We have constraints: The endpoints of the curve The curve must pass through p when u=0 The parametric derivatives of the curve at the endpoints 0 The derivative must be p’ when u=0 • The parametric derivatives are dx/dt, dy/dt, dz/dt 0 The curve must pass through p when u=1 That is enough to define a cubic Hermite spline, more derivatives are required 1 for higher order curves The derivative must be p’ when u=1 1 (c) SE/FIT/HUT 2002 9 (c) SE/FIT/HUT 2002 10 Basis Functions A point on a Hermite curve is obtained by multiplying each control point by some function and summing Thay vào: The functions are called basis functions p = p(u) = p (1-3u2+2u3) + p (3u2-2u3) 0 1 + p ’(u-2u2+u3) + p ’(-u2+u3) 0 1 p = p(u) = [ 1 u u2 u3 ] (c) SE/FIT/HUT 2002 11 (c) SE/FIT/HUT 2002 12 goupee.com fb.com/groups/goupee
Page 3
Đường cong Bezier Sử dụng điểm và các vector kiểm soát được độ dốc của đường po, p tương đương với p , p trên đường Hermite. diểm trung 3 0 1 cong tại nhưng điểm mà nó đi qua.(Hermit) gian p , p được xác định bằng 1/3 theo độ dài của vector tiếp 1 2 không được thuận lợi cho việc thiết kế tương tác, không tiếp cận tuyến tại điểm po và p 3 vào các độ dốc của đường cong bằng các giá trị số (Hermite). p ’ = 3(p – p ) 0 1 0 Paul Bezier, RENAULT, 1970 đường và bề mặt UNISURF p ’ = 3(p – p ) 3 3 2 p = p(u) = p (1-3u2+2u3) + p (3u2-2u3) + p ’(u-2u2+u3) + p ’(- 0 1 0 1 u2 + u3) p = p(u) = p (1 - 3u + 3u2 - u3) + p (3u-6u2-3u3) 0 1 + p (3u2 - 3u3) + p u3 2 3 (c) SE/FIT/HUT 2002 13 (c) SE/FIT/HUT 2002 14 Biểu diễn Ma trận Ưu điểm 1.2 1 dễ dàng kiểm soát hi`nh dạng của đường cong hơn vector tiếp 0.8 B0 B1 tuyến tại p ’ và p ’ của Hermite. 0.6 0 1 B2 Nằm trong đa giác kiểm soát với số điểm trung gian tuỳ ý( số B3 0.4 bậc tuỳ ý) 0.2 đi qua điểm đầu và điểm cuối của đa giác kiểm soát, tiếp xúc với 0 cặp hai vector của đầu cuối đó 1 0 0 0 p 0 −3 3 0 0 p 1 p = p(u) = [ 1 u u2 u3 ] 3 −6 3 0 p 2 −1 3 −3 1 p 3 (c) SE/FIT/HUT 2002 15 (c) SE/FIT/HUT 2002 16 Example Bezier Curves Sub-Dividing Bezier Curves P M 12 P 1 2 M M [UW] 012 0123 M 123 M 01 M 23 P P 0 3 (c) SE/FIT/HUT 2002 17 (c) SE/FIT/HUT 2002 18 goupee.com fb.com/groups/goupee
Page 4
Sub-Dividing Bezier Curves Sub-Dividing Bezier Curves P P Step 1: Find the midpoints of the lines joining the original control vertices. 1 2 Call them M , M , M 01 12 23 Step 2: Find the midpoints of the lines joining M , M and M , M . Call them M , M 01 12 12 23 012 123 Step 3: Find the midpoint of the line joining M , M . Call it M 012 123 0123 The curve with control points P , M , M and M exactly follows the original curve from the point with0 t=0 to the point with01 012 0123 t=0.5 The curve with control points M , M , M and P exactly follows the original curve from the point with0123t=0.5 to the point with123 23 3 t=1 P P 0 3 (c) SE/FIT/HUT 2002 19 (c) SE/FIT/HUT 2002 20 de Casteljau’s Algorithm Biểu thức Bezier-Bernstain You can find the point on a Bezier curve for any parameter value t with a similar Tổng quát hoá với n +1 điểm kiểm soát algorithm ∑n Say you want t=0.25, instead of taking midpoints take points 0.25 of the way p(u) = B (u)p i,n i M i=0 12 P P 2 ∑n 1 p′(u) = n B (u)(p − P) i,n−1 i+1 i M i=0 23 B (u) = C(n,i)ui(1−u)n−i t=0.25 i,n M p ... pn : vector vị trí của đa giác n+1 đỉnh 01 0 n! C(n,i) = P P i!(n − i)! 0 3 (c) SE/FIT/HUT 2002 21 (c) SE/FIT/HUT 2002 22 Review: Tính chất Bézier Curve Prop’s [1/6] P0 và Pn nằm trên đường cong. We looked at some properties of Bézier curves. Đường cong liên tục và có đạo hàm liên tục tất cả các bậc Generally “Good” Properties Endpoint Interpolation Tiếp tuyến của đường cong tại điểm P0 là đường P0P1 và tại Smooth Joining Pn là đường Pn-1Pn . Affine Invariance Đường cong nằm trong đường bao lồi convex hull của các Convex-Hull Property điểm kiểm soát. Generally “Bad” Properties This is because each successive Pi(j) is a convex Not Interpolating combination of the points Pi(j-1) and Pi-1(j-1) . No Local Control P1 ,P2 , … ,Pn-1 nằm trên đường cong khi và chỉ khi đường cong là đoạn thẳng. (c) SE/FIT/HUT 2002 23 (c) SE/FIT/HUT 2002 24 goupee.com fb.com/groups/goupee
Page 5
Problem with Bezier Curves Invariance To make a long continuous curve with Bezier segments Translational invariance means that translating the control points and then evaluating the curve is the same as evaluating and then translating the curve requires using many segments Rotational invariance means that rotating the control points and then evaluating Maintaining continuity requires constraints on the control the curve is the same as evaluating and then rotating the curve These properties are essential for parametric curves used in graphics point positions It is easy to prove that Bezier curves, Hermite curves and everything else we will study are translation and rotation invariant The user cannot arbitrarily move control vertices and automatically Some forms of curves, rational splines, are also perspective invariant maintain continuity Can do perspective transform of control points and then evaluate the curve The constraints must be explicitly maintained It is not intuitive to have control points that are not free (c) SE/FIT/HUT 2002 25 (c) SE/FIT/HUT 2002 26 Longer Curves Piecewise Bezier Curve A single cubic Bezier or Hermite curve can only capture a small class of curves At most 2 inflection points P P 0,1 0,2 One solution is to raise the degree Allows more control, at the expense of more control points and higher degree “knot” polynomials P Control is not local, one control point influences entire curve 0,0 P P 1,3 Alternate, most common solution is to join pieces of cubic curve together into 0,3 piecewise cubic curves P 1,0 Total curve can be broken into pieces, each of which is cubic P 1,2 Local control: Each control point only influences a limited part of the curve P Interaction and design is much easier 1,1 (c) SE/FIT/HUT 2002 27 (c) SE/FIT/HUT 2002 28 Continuity Đường bậc ba Spline When two curves are joined, we typically want some degree of continuity Spline đi qua n điểm cho trước mà mỗi đoạn là đường bậc ba across the boundary (the knot) C0, “C-zero”, point-wise continuous, curves share the same point where they độc lập có độ dốc và độ cong liên tục tại mỗi điểm kiểm soát join hay điểm nút C1, “C-one”, continuous derivatives, curves share the same parametric derivatives where they join Với n điểm:n-1 đoạn với mỗi đoạn 4 vector hệ số 4(n-1) cho C2, “C-two”, continuous second derivatives, curves share the same parametric n-1 đoạn, và 2(n-1) điều kiện biên và n-2 điều kiện về độ dốc second derivatives where they join Higher orders possible cùng n-2 về độ cong Question: How do we ensure that two Hermite curves are C1 across a Spline dùng để chỉ phương pháp biểu diễn đường cong mềm knot? Question: How do we ensure that two Bezier curves are C0, or C1, or C2 thông qua các đoạn cong tham biến bậc ba với các điều kiện across a knot? liên tục tại các điểm đầu nút (c) SE/FIT/HUT 2002 29 (c) SE/FIT/HUT 2002 30 goupee.com fb.com/groups/goupee
Page 6
Đường cong bậc ba Spline Achieving Continuity u = 0 với : (u ... un ) uj > uj For Hermite curves, the user specifies the derivatives, so C1 is achieved 0 0 -1 +1 simply by sharing points and derivatives across the knot ui = ui + di +1 +1 For Bezier curves: C để không có sự gián đoạn giữa hai đoạn cong. 0 They interpolate their endpoints, so C0 is achieved by sharing control points C tính liên tục bậc nhất hay đạo hàm bậc nhất tại điểm nối. The parametric derivative is a constant multiple of the vector joining the 1 C đạo hàm bậc hai liên tục của đường cong tại điểm nối first/last 2 control points 2 So C1 is achieved by setting P =P =J, and making P and J and P 0,3 1,0 0,2 1,1 collinear, with J-P =P -J 0,2 1,1 C2 comes from further constraints on P and P 0,1 1,2 (c) SE/FIT/HUT 2002 31 (c) SE/FIT/HUT 2002 32 Bezier Continuity B-splines P P B-splines automatically take care of continuity, with exactly one control 0,1 0,2 vertex per curve segment Many types of B-splines: degree may be different (linear, quadratic, P P cubic,…) and they may be uniform or non-uniform 0,0 J 1,3 We will only look closely at uniform B-splines With uniform B-splines, continuity is always one degree lower than the P degree of each curve piece 1,2 P Linear B-splines have C0 continuity, cubic have C2, etc 1,1 Disclaimer: PowerPoint curves are not Bezier curves, they are interpolating piecewise quadratic curves! This diagram is an approximation. (c) SE/FIT/HUT 2002 33 (c) SE/FIT/HUT 2002 34 B-Splines: Đường cong B-spline The Idea [1/2] Đường cong B-spline là đường cong được sinh ra từ đa giác The repeated-lirping idea that produced the Bézier curves has the kiểm soát mà bậc của nó không phụ thuộc vào số đỉnh của đa drawbacks that is produces polynomials with high degree that are nonzero giác kiểm soát. almost everywhere. Using functions defined in pieces, we can fix these two. Start: An order-1 B-Spline has blending functions that are always either 1 or 0. When a function is 1, all the rest are zero. So an order-1 B-spline is just a sequence of points. Any number of control points may be used. Now we make higher-order B-splines using a repeated-lirping procedure. But this time, we can use any number of control points. (c) SE/FIT/HUT 2002 35 (c) SE/FIT/HUT 2002 36 goupee.com fb.com/groups/goupee
Page 7
B-Splines: The Idea [2/2] B-Splines We form an order-2 B-Spline by lirping between the order-1 blending functions. As discussed, we get functions that start at 0, ramp up to 1 and back down, then stay at Types of B-Splines Approximation Curves Used zero. Each function is 0 most of the time. So each blending function is defined in pieces. Each piece is a polynomial of degree 1 B-Spline approximations can be classified based on the (graph is a line). spacing of the knot vector and the use of weights. So an order-2 B-spline is just the control polygon. Again, any number of control points may be used. 1. Uniform/Periodic B-splines : The spacing is We form an order-3 B-Spline by lirping between the order-2 blending functions. unform and the knots (control points) are equispaced e.g. Now blending functions are smooth. They start at 0, curve up to 1 then back down. [0,1,2,3,4,5] These have satisfactory smoothness but lack Again, each function is 0 most of the time. local control and the starting and ending poits are ill Again, each blending function is defined in pieces. Each piece is a polynomial of defined as above. degree 2. 2. Non-periodic: The knots are repeated at the ends m We continue this repeated-lirping procedure to define B-splines of higher order. times and the interior is equispaced. e.g. [0 0 0 1 2 3 3 3 ] These can be used to force the control point to start See the blue book for details and graphs. and finish at a control point. 3. Non-uniform B-Splines : The spacing is non- uniform and or repeated knots e.g. [0 1 1 2 4 5 6 6 ] These can be used to obtain local control (c) SE/FIT/HUT 2002 37 (c) SE/FIT/HUT 2002 38 Ví dụ: Uniform Cubic B-spline on [0,1] Basis Functions on [0,1] Four control points are required to define the curve for 0≤t<1 (t is the Does the curve interpolate its endpoints? parameter) Not surprising for a cubic curve with 4 degrees of freedom B Does it lie inside its convex hull? 0.7 1,4 B The equation looks just like a Bezier curve, but with different basis functions 2,4 0.6 Also called blending functions - they describe how to blend the control points to 1 make the curve 0.5 P(t ) =P (1−3t +3t 2 −t 3 ) 0 6 0.4 0.3 P 1 ( t t ) B B + 4−6 2 +3 3 1 6 ∑3 0.2 0,4 3,4 1 P(t ) = PB (t) i =0 i i ,4 0.1 P 1( t t t ) + 1+3 +3 2 −3 3 P 1( t t t ) P 1 ( t t ) P 1( t t t ) P 1(t ) 0 2 6 = 1−3 +3 2 − 3 + 4−6 2 +3 3 + 1+3 +3 2 −3 3 + 3 0 6 6 2 6 3 6 0 1 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1( ) t +P t3 3 6 (c) SE/FIT/HUT 2002 39 (c) SE/FIT/HUT 2002 40 Uniform Cubic B-spline on [0,1) Uniform - B-spline The blending functions sum to one, and are positive everywhere ∑n 1 u∈[u ,u ] P(u) = N (u).P N (u) = i i+1 The curve lies inside its convex hull i,k i i,1 0 others The curve does not interpolate its endpoints i=0 Requires hacks or non-uniform B-splines (u −U ) (U −u) N (u) = i+1−k N (u) + i+1 N (u) There is also a matrix form for the curve: i,k U −U i−1,k−1 (U −U ) i,k−1 i i+1−k i+1 i+2−k Ni,k(u) đa thức B-Spline cơ bản −1 3 −3 1t3 Với n+ 1 sô điểm kiểm soát 1 3 −6 0 4t 2 P(t) = [P P P P ] Pi điểm kiểm soát thứ i 6 0 1 2 3 −3 3 3 1t k bậc của đường cong 1<k<n+2 1 0 0 01 Ui vector nút của đường cong U=[U1,U2...Un+k+1] (c) SE/FIT/HUT 2002 41 (c) SE/FIT/HUT 2002 42 goupee.com fb.com/groups/goupee
Page 8
Using Uniform B-splines Uniform Cubic B-spline Blending Functions At any point t along a piecewise uniform cubic B-spline, there B B B B B B B are four non-zero blending functions 0.7 0,4 1,4 2,4 3,4 4,4 5,4 6,4 Each of these blending functions is a translation of B 0.6 0,4 Consider the interval 0≤t<1 0.5 0.4 We pick up the 4th section of B 0,4 0.3 We pick up the 3rd section of B 1,4 0.2 We pick up the 2nd section of B 2,4 0.1 We pick up the 1st section of B 3,4 0 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 t (c) SE/FIT/HUT 2002 43 (c) SE/FIT/HUT 2002 44 Computing the Curve ( ) ∑n ( ) X t = P B t k k,4 0.25 k=0 0.2 0.15 P1B1,4 P4B4,4 P0B0,4 P2B2,4 0.1 P B P6B6,4 3 3,4 0.05 P B 5 5,4 0 -3 -2 4 -2.7 -2.3 -1.6 -1.3 -0.9 -0.6 -0.2 0.1 0.5 0.8 1.2 1.5 1.9 2.2 2.6 2.9 3.3 3.6 4.3 4.7 t The curve can’t start until there are 4 basis functions active (c) SE/FIT/HUT 2002 45 (c) SE/FIT/HUT 2002 46 Đặc điểm B-Spline Blending Functions B-spline không đi qua hai điểm đầu và cuối trừ khi hàm hợp ( ) 1 t ≤ t ≤ t ( ) t −t ( ) được dùng là tuyến tính. B t = k k+1 B t = k B t + k,1 0 otherwise k,d t −t k,d−1 k+d−1 k B-spline có thể được tạo qua hai điểm đầu, cuối và tiếp xúc với t −t vector đầu và cuối của đa giác kiểm soát. Bằng cách thêm vào k+d B ( )t t −t k+1,d−1 các nút tại vị trí của các nút cuối của vector tuy nhiên các giá k+d k+1 trị giống nhau không nhiều hơn bậc của đường cong. The recurrence relation starts with the 1st order B-splines, Tính chất bao lồi của đa giác kiểm soát và tính chất chuẩn just boxes, and builds up successively higher orders được thoa mãn. ∑n N (u) =1 This algorithm is the Cox - de Boor algorithm i,k i=0 Số lượng các nút, bậc của đường cong và số điểm điều khiển luôn có các quan hệ ràng buộc: 0 ≤ u ≤ n - k + 2 (c) SE/FIT/HUT 2002 47 (c) SE/FIT/HUT 2002 48 goupee.com fb.com/groups/goupee
Page 9
Bk,1 Bk,2 B 0,1 B 1,1 B 0,2 B 1,2 1.2 1.2 1.2 1.2 1 1 1 1 0.8 )0.8 t( 0.8 0.8 0.6 0.6 B 0,1(t) B 1 , 1 0.6 0.6 0.4 0.4 B0,2(t) B 1, 2(t) 0.2 0.4 0.4 0.2 0 0 0.2 0.2 0 1 -3 8 6 4 2 -2 8 6 4 2 -1 8 6 4 2 0 0.2 0.4 0.6 0.8 1 -3 -2 -1 0.2 0.40.60.8 -2. -2. -2. -2. -1. -1. -1. -1. -0. -0. -0. -0. -2.8-2.6-2.4-2.2 -1.8-1.6-1.4-1.2 -0.8-0.6-0.4-0.2 0 0 t t 0 1 -3 -2 -1 0 1 -3 -2 -1 0.2 0.4 0.6 0.8 -2.8-2.6-2.4-2.2 -1.8-1.6-1.4-1.2 -0.8-0.6-0.4-0.2 0.2 0.4 0.6 0.8 -2.8-2.6-2.4-2.2 -1.8-1.6-1.4-1.2 -0.8-0.6-0.4-0.2 t t B 2,2 B 2,1 B 3,1 1.2 1.2 1.2 1 t + 3 −3≤ t < −2 1 1 B (t) = )t(0.8 )t(10.8 0.8 0,2 −1−t − 2 ≤ t < −1 0.6 ,0.6 0.6 B 2 ,10.4 B 30.4 B 2,2 (t)0.4 0.2 0.2 0 0 0.2 -3 8 6 4 2 -2 8 6 4 2 -1 8 6 4 2 0 6 8 1 -3 8 6 4 2 -2 8 6 4 2 -1 8 6 4 2 0 2 4 6 8 1 0 -2 . -2 . -2 . -2 . -1 . -1 . -1 . -1 . -0 . -0 . -0 . -0 . 0.2 0.4 0. 0. -2 . -2 . -2 . -2 . -1 . -1 . -1 . -1 . -0 . -0 . -0 . -0 . 0. 0. 0. 0. 0 1 -3 -2 -1 0.2 0.4 0.6 0.8 t t -2.8-2.6-2.4-2.2 -1.8-1.6-1.4-1.2 -0.8-0.6-0.4-0.2 t (c) SE/FIT/HUT 2002 49 (c) SE/FIT/HUT 2002 50 Bk,3 B0,4 B 0,3 B 1,3 B 0,4 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.5 0.5 0.6 0.4 0.4 0.5 B0,3(t)0.3 B 1 , 3 (t)0.3 0.2 0.2 0.4 0.1 0.1 0 0.3 0 0 1 B 0 ,4(t) -3 -2 -1 0 1 -3 -2 -1 0.2 0.4 0.6 0.8 -2.8-2.6-2.4-2.2 -1.8-1.6-1.4-1.2 -0.8-0.6-0.4-0.2 0.2 0.4 0.6 0.8 -2.8-2.6-2.4-2.2 -1.8-1.6-1.4-1.2 -0.8-0.6-0.4-0.2 0.2 t t ( ) 0.1 t + 3 2 −3≤ t < −2 0 1 -3 -2 -1 0 0.20.40.60.81 B (t) = − 2t2 −6t −3 − 2 ≤ t < −1 -2.8-2.6-2.4-2.2 -1.8-1.6-1.4-1.2 -0.8-0.6-0.4-0.2 0,3 2 t t2 −1≤ t < 0 (c) SE/FIT/HUT 2002 51 (c) SE/FIT/HUT 2002 52 B0,4 B Spline - Đều và tuần hoàn (t + 3)3 −3≤ t < −2 Vecto nút là đều khi giá trị của chúng cách đều nhau một khoảng ∇ xác định. Trong các bài toán thực tế, vecto nút đều 1 −3t3 −15t2 − 21t −5 − 2 ≤ t < −1 B (t) = được bắt đầu từ 0 và tăng 1 cho đến giá trị lớn nhất 0,4 6 3t3 + 3t2 −3t +1 −1≤ t < 0 (1−t)3 0 ≤ t <1 Ví dụ: [ 0 1 2 3 4 5 ] với ∇ xác định = 1 [ -2 -1/2 1 5/2 4 ] với ∇ xác định = 3/2 Note that the functions given on slides 5 and 6 are translates of this Với cấp là k, số điểm kiểm soát là n+1 thì vecto nút đều là function obtained by using (t-1), (t-2) and (t-3) instead of just t, and then U=[0 1 2 ...n+k] khoảng tham số (k-1)≤u≤(n+1). selecting only a sub-range of t values for each function Khi vecto nút là đều thì ta có Ni,k(u)=Ni-1,k(u-1)=Ni+1,k(u+1) (c) SE/FIT/HUT 2002 53 (c) SE/FIT/HUT 2002 54 goupee.com fb.com/groups/goupee
Page 10
Không tuần hoàn B-Splines: Open – Non Uniform Properties Một vector không tuần hoàn hoặc mở là Cấp số lượng nút (m Vector nút The most used B-splines are: vector nút có giá trị nút tại các điểm đầu k = n + k) không tuần Order 3 (“quadratic B-splines”). cuối lặp lại với số lượng các giá trị lặp hoàn • Smooth. Order 4 (“cubic B-splines”). lại này bằng chính cấp k của đường cong 2 6 [0 0 1 2 3 3] • Smoother, but control is a little less local. và các giá trị nút trong mỗi điểm lặp này B-splines have the following properties. là bằng nhau An order-k B-spline has blending functions that are defined in pieces, using 3 7 [0 0 0 1 2 2 2] polynomials of degree k–1. Nếu một trong hai điều kiện này hoặc cả hai điều kiện không được thoả mãn thì vecto nút • This is true for any number of control points. We can choose the number of control points and the polynomial degree separately. ☺ là không đều. 4 8 [0 0 0 0 1 1 1 1] B-splines are affine invariant (of course). Cách tính Ui They have the convex-hull property. ☺ Ui = 0 1=<i<=k They have local control. ☺ Ui = i-k k+1<i<=n+1 A B-spline (of order 3 or more) does not interpolate any of its control points. / But we can deal with this … Ui = n-k+2 n+1<i<=n+k+1 (c) SE/FIT/HUT 2002 55 (c) SE/FIT/HUT 2002 56 Kết luận Rational Curves B-spline là một dòng của Bezier Each point is the ratio of two curves Thực tế khi ta chọn bậc k cho tập hợp k điểm thì thi B-spline chuyển thành Just like homogeneous coordinates: Bezier x(t) y(t) z(t) [x(t), y(t),z(t),w(t)]→ , , Khi bậc của đa thức giảm sự ảnh hưởng cục bộ của mỗi điểm nút càng rõ w(t) w(t) w(t) ràng hơn. NURBS: x(t), y(t), z(t) and w(t) are non-uniform B-splines Khi tồn tại anh hưởng cục bộ càng lớn và đường cong phai đi qua điểm đó. Advantages: Chúng ta có thể thay đổi hình dạng đường cong B-spline bằng cách: Perspective invariant, so can be evaluating in screen space Thay đổi kiểu vecto nút : đều tuần hoàn, mở, không đều Can perfectly represent conic sections: circles, ellipses, etc Thay đổi cấp k của đường cong • Piecewise cubic curves cannot do this Thay đổi số đỉnh và vị trí các đỉnh đa giác kiểm soát Sử dụng các điểm kiểm soát trùng nhau (c) SE/FIT/HUT 2002 57 (c) SE/FIT/HUT 2002 58 Rational Spline - NURBS OpenGL and NURBS A Rational Spline is like a B-Spline L t NURBS: Non-uniform Rational B-splines but the designer can add weightings P (t) = ∑P R ( ) The curved surface of choice in CAD packages to the blending functions to modify k k Support routines are part of the GLu utility library the curve. k =0 Allows you to specify how they are rendered: Can use points constantly spaced in parametric space w N (t) Can use various error tolerances - the good way! The blending functions produce a R (t) = k k,m Allows you to get back the lines that would be drawn ratio of the polynomials used. k ∑L Allows you to specify trim curves w N (t) k k,m Only for surfaces k=0 Cut out parts of the surface - in parametric space (c) SE/FIT/HUT 2002 59 (c) SE/FIT/HUT 2002 60 goupee.com fb.com/groups/goupee
Page 11
Other Splines: Non-uniform Rational B-Splines(NURBS) NURBS, etc. The last 3 types are good for representing free form curves but also introduce There are any number of other types of splines. unnecessary approximations in the representation of conic sections. NURBS build on Often we want a very general type of curve that will do whatever we want. non-uniform B-Splines and introduce a weight function to obtain an approximation One such type of curve that has been very successful is the NURBS. that retains all the advantages of the non-uniform B-Splines and is also capable of NURBS = Non-Uniform Rational B-Spline. exact representation of conic sections (circles, parabolas etc.).The general form is A NURBS is defined using rational functions. given below: • A rational function is a polynomial divided by a polynomial. Control points can be given weights, so some are more important than others. NURBS curves (and surfaces) are built into GLU, but can be rather complex to use. One important issue when defining curves and surfaces: In advanced rendering the technique of ray tracing is often used. In ray tracing, we determine the color of a pixel by tracing a ray of light backward from the viewer’s eye, through the pixel, and we see where the ray came from. The curve is described as rational since it is expressed as the ratio of two In order to do ray tracing efficiently, we must be able to test quickly whether a polynomials. w defines a weight function. If w is set to 1 we get back the non- particular ray hits a particular object and, if so, where. i i uniform B-Spline. Other values of the w can be used to produce curves for straight Types of surfaces in which this test can be done quickly will be more useful in 3-D i line, parabola, ellipse and hyperbola. graphics. (c) SE/FIT/HUT 2002 61 (c) SE/FIT/HUT 2002 62 Tính chất cả đường cong đa thức How to Choose a Spline Tham biến – parametric sử dụng tham biến ngoài để biểu diễn cho các Hermite curves are good for single segments where you know the tham biến trong parametric derivative or want easy control of it Độ mượt - smooth. Với đường cong Hermite and Bézier tính liên tục Bezier curves are good for single segments or patches where a user continuity của đường cong hay đạo hàm bậc 1-first derivative tại các điểm controls the points kiểm soát-control point. Với B-splines tính liên tục trên đạo hàm bậc 2 second derivative hay độ cong được đảm bảo curvature. B-splines are good for large continuous curves and surfaces Độ biến đổi -"variation diminishing." đường cong ít bị khuếch đại sai NURBS are the most general, and are good when that generality is useful, số bởi các điểm kiểm soát hay tính nhấp nhô của đường cong hạn chế - or when conic sections must be accurately represented (CAD) oscillate. Ví dụ Bézier curve, for instance, lies within the convex hull (polygon envelope) of the set of control points. Điêm kiểm soát cục bộ-local control. đường cong bị ảnh hưởng mạnh nhất với chính các điểm kiểm soát gần chúng nhất. (c) SE/FIT/HUT 2002 63 (c) SE/FIT/HUT 2002 64 goupee.com fb.com/groups/goupee
Showing the first 11 pages. Download the document to see it all.
Comments (0)
No comments yet. Be the first!