CNTT-DHBK Hanoi hunglt@it-hut.edu.vn Đường cong - Curve Đường cong không gian 3D CURVE Why use curves? Quỹ đạo chuyển động điểm không gian Điểm biểu diễn Đường cong -curve represents points: – – – phương pháp sử dụng khoa học vật lý kỹ nghệ nói chung Các điểm liệu đo xác thực thể đối tượng sở Đường cong qua điểm liệu hiển thị hỗ trợ cho việc nhận xu hướng ý nghĩa điểm liệu Các kỹ thuật phức tạp “vd bình phương sai số” dùng đưa đường cong hợp với dạng toán học Biểu diễn Điểm kiểm soát đường cong -Points represent-and control-the curve – – Khoa CNTT DHBK Hanoi Phân loại What degree should we use to represent a curve? Khoa CNTT DHBK Hanoi We choose the third degree: – Higher degrees: Require more computation Have extra “wiggles” Provide more flexibility than is required Are often used to model cars and aeroplanes Khoa CNTT DHBK Hanoi Đường cong đa thức bậc ba Tham biến – parametric sử dụng tham biến để biểu diễn cho tham biến Độ mượt - smooth Với đường cong Hermite and Bézier tính liên tục continuity đường cong hay đạo hàm bậc 1-first derivative điểm kiểm soát-control point Với B-splines tính liên tục đạo hàm bậc second derivative hay độ cong đảm bảo curvature Độ biến đổi -"variation diminishing." đường cong bị khuếch đại sai số điểm kiểm soát hay tính nhấp nhô đường cong hạn chế -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 với điểm kiểm soát gần chúng Khoa CNTT DHBK Hanoi – Cubic polynomials Tính chất đường cong bậc Khoa CNTT DHBK Hanoi Polynomial Parametric Curves Trên sở ràng buộc điểm đường ứng dụng khoa học thiết kế ta co thể phân làm loại: Nội suy-Interpolation - đường cong qua điểm, ứng dụng khoa học yêu cầu ràng buộc sử dụng đa thức hay hàm bậc cao nhiên kết thường có hiệu ứng phụ sai số phóng đại hay độ nhấp nhô đường cong đa thức bậc cao tạo nên Trong thiết kế nôi suy cần thiết với đối tượng không phù hợp với đối tượng có hình dáng "free form“ Xấp xỉ-Approximation - đường cong không cần qua điểm,với ứng dụng khoa học ta gọi trung bình liệu- data averaging hay thiết kế điểu khiển đường cong đường cong đối tượng thường kết tiến trình thiết kế điểm đóng vai trò công cụ để kiểm soát và mô hình hoá đường cong Cách tiếp cận sở lĩnh vực Computer Aided Geometric Design (CAGD) Phải đảm bảo đường cong không gian với trục toạ độ x, y, z tránh tính toán phức tạp phần nhấp nhô ý muốn xuất đường đa thức bậc cao Why cubic? – – – – lower-degree polynomials give too little flexibility in controlling the shape of the curve higher-degree polynomials can introduce unwanted wiggles and require more computation lowest degree that allows specification of endpoints and their derivatives lowest degree that is not planar in 3D Khoa CNTT DHBK Hanoi CNTT-DHBK Hanoi hunglt@it-hut.edu.vn Đường cong bậc Kinds of continuity: – – – – Theo Lagrange: x = a1 + b1u + c1u2 + d1u3 y = a2 + b2u + c2u2 + d2u3 z = a3 + b3u + c3u2 + d3u3 phương trinh với 12 ẩn số Với điểm P0, P1, P2, P3 phương trình xác định G0: two curve segments join together G1: directions of tangents are equal at the joint C1: directions and magnitudes of tangents are equal at the joint Cn: directions and magnitudes of n-th derivative are equal at the joint P'1 p3 P1 p2 P'0 P0 Khoa CNTT DHBK Hanoi P1 P0 Khoa CNTT DHBK Hanoi Đường cong Hermite Phương pháp Hermite dựa sở cách biểu diễn Ferguson hay Coons năm 60 đường bậc ba xác định hai điểm đầu cuối với hai góc nghiêng hai điểm p = p(u) = k0 + k1u + k2u2 + k3u3 p(u) = ∑kiui i∈n p’ = p(u) = k1 + 2k2u + 3k3u2 p0 p1 ta có hai độ dốc p0’ p1’ với u = u = hai điểm đầu cuối đoạn [0,1] k1 + 2k2 + 3k3 = p1’ k0 = p0 k1 = p1’ k2 = 3(p1 – p0) - 2p0’ – p1’ k3 = 2(p0-p1) + p0’ + p1’ Khoa CNTT DHBK Hanoi Thay vào: p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) + p0’(u-2u2+u3) + p1’(-u2+u3) ⎡1 ⎢0 p = p(u) = [ u u2 u3 ] ⎢ ⎢− ⎢ ⎣2 10 ⎤ ⎡ p0 ⎤ ⎢ ⎥ ⎥⎥ ⎢ p1 ⎥ − − 1⎥ ⎢ p '0 ⎥ ⎥ ⎢ ⎥ 1 ⎦ ⎣ p '1 ⎦ 0 Khoa CNTT DHBK Hanoi Đường cong Bezier Sử dụng điểm vector kiểm soát độ dốc đường cong điểm mà qua.(Hermit) không thuận lợi cho việc thiết kế tương tác, không tiếp cận vào độ dốc đường cong giá trị số (Hermite) Paul Bezier, RENAULT, 1970 đường bề mặt UNISURF 11 Khoa CNTT DHBK Hanoi 12 Khoa CNTT DHBK Hanoi CNTT-DHBK Hanoi hunglt@it-hut.edu.vn po, p3 tương đương với p0, p1 đường Hermite diểm trung gian p1, p2 xác định 1/3 theo độ dài vector tiếp tuyến điểm po p3 p0’ = 3(p1 – p0) p3’ = 3(p3 – p2) p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) + p0’(u2u2+u3) + p1’(-u2 + u3) p = p(u) = p0(1 - 3u + 3u2 - u3) + p1(3u-6u2+3u3) + p2(3u2 - 3u3) + p3u3 13 Khoa CNTT DHBK Hanoi p = p(u) = [ u u2 u3 0 ⎡1 ⎢ 3 − ] ⎢ ⎢ −6 ⎢ ⎣− − 0⎤ ⎥ 0⎥ 0⎥ ⎥ 1⎦ 14 Ưu điểm ⎡ p0 ⎤ ⎢p ⎥ ⎢ 1⎥ ⎢ p2 ⎥ ⎢ ⎥ ⎣ p3 ⎦ Khoa CNTT DHBK Hanoi De Casteljau algorithm dễ dàng kiểm soát hi`nh dạng đường cong vector tiếp tuyến p0’ p1’ Hermite Nằm đa giác kiểm soát với số điểm trung gian tuỳ ý( số bậc tuỳ ý) qua điểm đầu điểm cuối đa giác kiểm soát, tiếp xúc với cặp hai vector đầu cuối 15 Khoa CNTT DHBK Hanoi 16 Tính chất Biểu thức Bezier-Bernstain Tổng quát hoá với n +1 điểm kiểm soát P0 Pn nằm đường cong Đường cong liên tục có đạo hàm liên tục tất bậc Tiếp tuyến đường cong điểm P0 đường P0P1 Pn đường Pn-1Pn Đường cong nằm đường bao lồi convex hull điểm kiểm soát This is because each successive Pi(j) is a convex combination of the points Pi(j-1) and Pi-1(j-1) P1 ,P2 , … ,Pn-1 nằm đường cong đường cong đoạn thẳng n p(u ) = ∑ Bi ,n (u ) pi i =0 n p′(u ) = n ∑ Bi ,n −1 (u )( pi +1 − Pi ) i =0 Bi ,n (u ) = C ( n, i )u i (1 − u ) n −i C( n, i) = n! i! ( n − i)! p0 pn : vector vị trí đa giác n+1 đỉnh 17 Khoa CNTT DHBK Hanoi Khoa CNTT DHBK Hanoi 18 Khoa CNTT DHBK Hanoi CNTT-DHBK Hanoi hunglt@it-hut.edu.vn Review: Bézier Curve Prop’s [1/6] Đường bậc ba Spline We looked at some properties of Bézier curves Generally “Good” Properties – – – – Spline qua n điểm cho trước mà đoạn đường bậc ba độc lập có độ dốc độ cong liên tục điểm kiểm soát hay điểm nút Với n điểm:n-1 đoạn với đoạn vector hệ số 4(n-1) cho n-1 đoạn, 2(n-1) điều kiện biên n2 điều kiện độ dốc n-2 độ cong Spline dùng để phương pháp biểu diễn đường cong mềm thông qua đoạn cong tham biến bậc ba với điều kiện liên tục điểm đầu nút Endpoint Interpolation Smooth Joining Affine Invariance Convex-Hull Property Generally “Bad” Properties – – Not Interpolating No Local Control 19 Khoa CNTT DHBK Hanoi 20 Khoa CNTT DHBK Hanoi y Đường cong bậc ba Spline u0 = với : (u0 un-1) uj+1 > uj ui+1 = ui + di+1 C0 để gián đoạn hai đoạn cong C1 tính liên tục bậc hay đạo hàm bậc điểm nối C2 đạo hàm bậc hai liên tục đường cong điểm nối 21 Khoa CNTT DHBK Hanoi Pn-1’ Pn-1 x z Po’ Po P1 0 ⎤ ⎡ p0 ⎤ ⎢ ⎥ ⎥⎥ ⎢ p1 ⎥ ⎢− 3 − − 1⎥ ⎢ p '0 ⎥ ⎢ ⎥ ⎢ ⎥ ⎦ ⎣ p '1 ⎦ ⎣2 tính liên tục đạo hàm bậc hai điểm nối dễ dàng đạt cách đặt P’’i-1(ui-1=1) đạo hàm bậc hai điểm cuối đoạn (i-1) với P’’i(ui=0) đạo hàm bậc hai điểm đầu đoạn thứ i P’’i-1(1)= P’’i(0) ⎡1 ⎢ p = [ u u2 u3 ] ⎢ 22 Khoa CNTT DHBK Hanoi B-Splines: The Idea [1/2] Đường cong B-spline The repeated-lirping idea that produced the Bézier curves has the drawbacks that is produces polynomials with high degree that are nonzero almost everywhere Đường cong B-spline đường cong sinh từ đa giác kiểm soát mà bậc không phụ thuộc vào số đỉnh đa giác kiểm soát – Using functions defined in pieces, we can fix these two Start: An order-1 B-Spline has blending functions that are always either or 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 repeatedlirping procedure – 23 Khoa CNTT DHBK Hanoi 24 But this time, we can use any number of control points Khoa CNTT DHBK Hanoi CNTT-DHBK Hanoi hunglt@it-hut.edu.vn B-Splines: The Idea [2/2] B-Splines We form an order-2 B-Spline by lirping between the order-1 blending functions – – – – Types of B-Splines Approximation Curves Used As discussed, we get functions that start at 0, ramp up to and back down, then stay at zero Each function is most of the time So each blending function is defined in pieces Each piece is a polynomial of degree (graph is a line) So an order-2 B-spline is just the control polygon Again, any number of control points may be used B-Spline approximations can be classified based on the spacing of the knot vector and the use of weights We form an order-3 B-Spline by lirping between the order-2 blending functions – – Now blending functions are smooth They start at 0, curve up to then back down Again, each function is most of the time Again, each blending function is defined in pieces Each piece is a polynomial of degree We continue this repeated-lirping procedure to define B-splines of higher order 25 – See the blue book for details and graphs Khoa CNTT DHBK Hanoi 26 Uniform/Periodic B-splines : The spacing is unform and the knots (control points) are equispaced e.g [0,1,2,3,4,5] These have satisfactory smoothness but lack local control and the starting and ending poits are ill defined as above Non-periodic: The knots are repeated at the ends m times and the interior is equispaced e.g [0 0 3 ] These can be used to force the control point to start and finish at a control point Non-uniform B-Splines : The spacing is nonuniform and or repeated knots e.g [0 1 6 ] These can be used to obtain local control Khoa CNTT DHBK Hanoi B-spline n P(u ) = ∑ N i ,k (u ).Pi i =0 N i ,k (u ) = 27 ⎧1 u ∈ [ui , ui +1 ] N i ,1 (u ) = ⎨ ⎩0 others (u − U i +1− k ) (U i +1 − u ) N i −1,k −1 (u ) + N i ,k −1 (u ) U i − U i +1− k (U i +1 − U i + − k ) Ni,k(u) đa thức B-Spline Với n+ sô điểm kiểm soát Pi điểm kiểm soát thứ i k bậc đường cong 1 ... n +1 điểm kiểm soát P0 Pn nằm đường cong Đường cong liên tục có đạo hàm liên tục tất bậc Tiếp tuyến đường cong điểm P0 đường P0P1 Pn đường Pn-1Pn Đường cong nằm đường bao lồi convex hull điểm... CNTT DHBK Hanoi Đường cong Bezier Sử dụng điểm vector kiểm soát độ dốc đường cong điểm mà qua.(Hermit) không thuận lợi cho việc thiết kế tương tác, không tiếp cận vào độ dốc đường cong giá trị số... tồn anh hưởng cục lớn đường cong phai qua điểm Chúng ta thay đổi hình dạng đường cong B-spline cách: Thay đổi kiểu vecto nút : tuần hoàn, mở, không Thay đổi cấp k đường cong Thay đổi số đỉnh