Giáo trình CAD/CAM - Chương 3: Mô hình hóa các thực thể hình học - Nguyễn Thế Tranh
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình CAD/CAM - Chương 3: Mô hình hóa các thực thể hình học - Nguyễn Thế Tranh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_cadcam_chuong_3_mo_hinh_hoa_cac_thuc_the_hinh_hoc.pdf
Nội dung text: Giáo trình CAD/CAM - Chương 3: Mô hình hóa các thực thể hình học - Nguyễn Thế Tranh
- C3 CAD-CAM>MHHCACTTHH 1 GVC NGUYỄN THẾ TRANH Chương 3. MÔ HÌNH HOÁ CÁC THỰC THỂ HÌNH HỌC 3.1. MÔ HÌNH ĐƯỜNG CONG Về mặt lý thuyết có thể sử dụng phương trình toán học bất kỳ để định nghĩa đường cong. Tuy nhiên, mô hình toán học dưới dạng phương trình đa thức được sử dụng phổ biến nhất do có đặc tính dễ dàng xử lý, đủ linh hoạt để mô tả phần lớn các loại đường cong sử dụng trong kỹ thuật. 3.1.1. PHÂN LOẠI ĐƯỜNG CONG ĐA THỨC. Mô hình toán học biểu diễn đường cong có thể dưới dạng phương trình ẩn, phương trình tường minh hoặc phương trình tham số. Phương trình ẩn và phương trình tường minh chỉ được sử dụng cho đường cong 2D. Đường cong đa thức tương ứng với các dạng phương trình toán học được trình bày dưới dạng tổng quát sau: Phương trình đa thức ẩn. m n i j g(x, y) = ∑∑cij x y = 0 i==00j Phương trình đa thức tường minh. y = f (x) = a + bx + cx 2 + (theo toạ độ Đề các) r = h(θ ) = α + βθ + γθ 2 + (theo toạ độ cực) Phương trình đa thức tham số. r(t) ≡ (x(t), y(t), z(t)) = a + bt + ct 2 + Các dạng đường cong đa thức tham số được sử dụng phổ biến nhất bao gồm: 1, Đường cong đa thức chuẩn tắc, 2, Đường cong Ferguson, 3, Đường cong Bezier, 4, Đường cong B-spline đều, 5, Đường cong B-spline không đều. 3.1.2. ĐƯỜNG CONG 2D. Đường cong 2D được sử dụng như các đối tượng hình học cơ sở trên các bản vẽ kỹ thuật truyền thống để mô tả hình thể 3D. 1. Mô hình đường cong dưới dạng phương trình đa thức ẩn. Phương trình ẩn g(x,y) = 0 biểu diễn đường cong trên mặt phẳng x-y, ví dụ như đường tròn và đường thẳng được biểu diễn bởi phương trình:
- C3 CAD-CAM>MHHCACTTHH 2 GVC NGUYỄN THẾ TRANH (x − a) 2 + (y − b) 2 − r 2 = 0 ; ax + by + c = 0 Mô hình này có ưu điểm: - Dễ dàng xác định vectơ tiếp tuyến và pháp tuyến, - Dễ dàng xác định vị trí tương đối giữa điểm với đường cong. Phương trình đa thức bậc 2 g(x,y) = 0 biểu diễn họ đường cong conic là giao tuyến giữa mặt cắt phẳng và mặt nón trụ. Tuỳ theo vị trí tương đối giữa mặt phẳng cắt và mặt nón, đường cong conic có thể là: x 2 y 2 1, Elip : + −1 = 0 a 2 b 2 2, Parabôn : y 2 − 4ax = 0 x 2 y 2 3, Hyperbôn : − −1 = 0 a 2 b 2 Nhược điểm chính của mô hình đường cong dưới dạng phương trình ẩn là khó thực hiện đồ hình tuần tự, đây là chức năng quan trọng trong đồ hoạ điện toán. Do vậy trong mô hình hoá hình học, đường cong conic dưới dạng phương trình tham số được sử dụng phổ biến hơn cả. Thực tế mô hình dạng phương trình đa thức ẩn có bậc cao hơn 2 rất ít được sử dụng. 2. Mô hình đường cong dưới dạng phương trình đa thức tường minh. Phương trình tường minh dạng : y = f(x) = a + bx + cx2 + mô tả đường cong trên mặt phẳng x-y. Nếu f(x) là đa thức bậc 2, đường cong là Parabol. Đặc tính tiêu biểu của đa thức tường minh là có thể chuyển đổi thành phương trình ẩn hoặc phương trình tham số. Nếu y = f(x), trong đó f(x) là đa thức của x, tức là: g(x, y) ≡ y − f (x) = 0 hoặc x(t) = t ; y(t) = f(t) (3.1) Do vậy phương trình đa thức tường minh có ưu điểm của phương trình ẩn và phương trình tham số, đó là: - Dễ dàng xác định vectơ tiếp tuyến và pháp tuyến. - Dễ dàng xác định vị trí tương quan giữa điểm với đường cong. - Dễ dàng thực hiện đồ hình tuần tự. Nhược điểm chính của dạng phương trình tường minh là không thể điều khiển đường cong khép kín hoặc đường thẳng đứng. Dạng phương trình (3.1) còn được gọi là dạng phi tham số.
- C3 CAD-CAM>MHHCACTTHH 3 GVC NGUYỄN THẾ TRANH 3.1.3. ĐƯỜNG CONG ĐA THỨC THAM SỐ. Khảo sát việc thiết lập đường cong với điều kiện biên cho trước bao gồm toạ độ và tiếp tuyến tại 2 điểm đầu và cuối: P0, P1, t0, t1. Vì rằng đường cong được định nghĩa bởi 2 vectơ vị trí và 2 vectơ tiếp tuyến có thể biểu diễn chúng dưới dạng phương trình đa thức vectơ bậc 3. Đa thức bậc 3 được sử dụng rất phổ biến, bởi vì đó là bậc tối thiểu, đủ để dựng các loại đường cong trong không gian 3D. 1. Mô hình đường cong dưới dạng phương trình đa thức chuẩn tắc. Đặc tính của mô hình đa thức chuẩn tắc là dễ dàng xác định. Xét phương trình đa thức vectơ bậc 3: 2 3 r(u) = (x(u), y(u), z(u)) = a + bu + cu + du Có thể biểu diễn phương trình đa thức này dưới dạng ma trận theo vectơ cơ sở U và vectơ hệ số A như sau: ⎡a⎤ ⎢b⎥ r(u) = []1 u u 2 u 3 ⎢ ⎥ = UA với 0 ≤ u ≤1 (3.2) ⎢c⎥ ⎢ ⎥ ⎣d⎦ Phương trình đa thức bậc 3 (3.2) không thể hiện được ý nghĩa hình học, nhưng có thể được sử dụng để thiết lập đường cong trơn láng đi qua 4 điểm dữ liệu { Pi: i = 1, ,4} theo phương pháp sau: Đặt di là chiều dài cát tuyến giữa điểm Pi và Pi+1: di = Pi+1 − Pi với i = 0, 1, 2 Từ đó giá trị tham số ui tại các điểm Pi được xác định như sau: u0 = 0 ; u1 = d0 / ∑ di ; u2 = (d0 + d1 ) / ∑ di ; u3 =1 Đường cong bậc 3 (3.2) đi qua các điểm dữ liệu phải thoả điều kiện: r(u i ) = Pi ; với i = 1, ,4 Tổng quát, đường cong đa thức bậc n đi qua (n+1) điểm dữ liệu được biểu diễn bởi phương trình đa thức: n i r(u) = ∑ aiu i=0 2. Đường cong Ferguson. t1 t0 Ferguson giới thiệu một r(u) phương pháp khác sử dụng phương trình (3.2). Theo đó đường cong P1 được thiết lập bởi (Hình 3.1): P0 a. Hai điểm đầu cuối P0 và P1. Hình 3.1 - Đường cong Ferguson b. Tiếp tuyến đầu cuối t0 và t1.
- C3 CAD-CAM>MHHCACTTHH 4 GVC NGUYỄN THẾ TRANH Đường cong bậc 3 (3.2) thoả điều kiện biên P0, P1, t0, t1 chúng phải đảm bảo: P0 = r(0) = a P = r(1) = a + b + c + d 1 (3.3) t0 = r&(0) = b t1 = r&(1) = b + 2c + 3d Sau các phép biến đổi, hệ số PT đa thức được xác định theo biểu thức: ⎡a⎤ ⎡ 1 0 0 0 ⎤⎡P0 ⎤ ⎢b⎥ ⎢ 0 0 1 0 ⎥⎢P ⎥ A = ⎢ ⎥ = ⎢ ⎥⎢ 1 ⎥ ≡ CS (3.4) ⎢c⎥ ⎢− 3 3 − 2 −1⎥⎢t0 ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎣d⎦ ⎣ 2 − 2 1 1 ⎦⎣ t1 ⎦ Kết hợp biểu thức (3.2) và (3.4), đường cong Ferguson r(u) theo điều kiện biên như trên được biểu diễn bởi ma trận hệ số Ferguson C và vectơ điều kiện biên Ferguson S như sau: r(u) = UA = UCS , với 0 ≤ u ≤1 (3.5) Thực tế dễ dàng xác định được độ lớn của vectơ tiếp tuyến, do đó độ lớn của vectơ được chọn bằng chiều dài cát tuyến t0 = t1 = P1 − P0 . Sự lựa chọn này thoả yêu cầu về hình dáng. Phương trình (3.2) và (3.5) đều được biểu diễn dưới dạng ma trận cơ sở. Có thể biểu diễn (3.5) dưới dạng khác: r(u) = (U C) S 2 3 2 3 2 3 2 3 = (1- 3u +2u )P0 + (3u - 2u )P1 + (u - 2u + u )t0 + (-u + u )t1 (3.6) 3 3 3 3 = H 0 (u)P0 + H 1 (u)t0 (u) + H 2 (u)t1 (u) + H 3 (u)P1 3 2 3 3 2 3 trong đó: H 0 (u) = (1− 3u + 2u ) ; H1 (u) = (u − 2u + u ) 3 2 3 3 2 3 H 2 (u) = (−u + u ) ; H 3 (u) = (3u − 2u ) 3 H i (u) là hàm kết nối Hermite bậc 3 thoả điều kiện biên tại u = 0, 1 như sau: H 3 (0) = H 3 (1) = H& 3 (0) = H& 3 (1) = 1 0 3 1 2 3 3 3 3 H 0 (1) = H 3 (0) = H& 1 (1) = H& 2 (0) = 0 3 3 3 3 H& 1 ( j) = H& 2 ( j) = H1 ( j) = H 2 ( j) = 0 với mọi j = 0,1 Dễ dàng xác nhận rằng phương trình (3.6) thoả điều kiện biên (3.3). Phương trình (3.6) là định nghĩa chuẩn về đường cong kết nối Hermite.
- C3 CAD-CAM>MHHCACTTHH 5 GVC NGUYỄN THẾ TRANH 3. Đường cong Bezier Đường cong Bezier được định nghĩa bằng nhiều phương pháp. Hãy xét phương pháp xây dựng đường cong Bezier bậc 3 từ phương trình đường cong Ferguson (3.5). Bốn đỉnh điều khiển Bezier V0, V1, V2, V3 (hình 3.2a) thoả điều kiện: V0 là điểm đầu của đường cong, V1 là vị trí 1/3 chiều dài trên vectơ tiếp tuyến đầu, V2 là vị trí 2/3 chiều dài trên vectơ tiếp tuyến cuối, V3 là điểm cuối của đường cong. V 2 V1 V1 t0 t1 r(u) V2 V2 r(u) V1 r(u) V0 V3=P1 V3 V0=P0 V0 V3 a, b, c, Hình 3.2 - Đường cong Bezier bậc 3 Đỉnh điều khiển Bezier được biểu diễn theo điều kiện Ferguson như sau: V0 = P0 ; V1 = (V0 + t0/3) ; V2 = (V3 - t1/3) ; V3 = P1 Ngược lại, điều kiện biên Ferguson được biểu diễn theo đỉnh điều khiển Bezier Vi là: P0 = V0 ; P1 = V3 ; t0 = 3(V1-V0) ; t1 = 3(V3-V2) hay dưới dạng ma trận: ⎡P0 ⎤ ⎡ 1 0 0 0⎤⎡V0 ⎤ ⎢P ⎥ ⎢ 0 0 0 1⎥⎢V ⎥ S ≡ ⎢ 1 ⎥ = ⎢ ⎥⎢ 1 ⎥ ≡ LR (3.7) ⎢t0 ⎥ ⎢− 3 3 0 0⎥⎢V2 ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎣ t1 ⎦ ⎣ 0 0 − 3 3⎦⎣V3 ⎦ Cuối cùng ta thay thế kết quả (3.7) vào phương trình đường cong Ferguson (3.5) để đạt được phương trình đường cong Bezier bậc 3 biểu diễn bởi ma trận hệ số Bezier M và vectơ đỉnh điều khiển R: r(u) = U C S = U C (L R) = U (C L) R = U M R , với 0 ≤ u ≤ 1 (3.8) ⎡ 1 0 0 0⎤ ⎡V0 ⎤ ⎢− 3 3 1 0⎥ ⎢V ⎥ trong đó: M = ⎢ ⎥ ; R = ⎢ 1 ⎥ ⎢ 3 − 6 3 0⎥ ⎢V2 ⎥ ⎢ ⎥ ⎢ ⎥ ⎣−1 3 − 3 1⎦ ⎣V3 ⎦ Đặc tính tiêu biểu của đường cong Bezier là hình dáng của đường cong phụ thuộc vào đa tuyến lồi giới hạn bởi các đỉnh điều khiển ( Hình 3.2) . Tương tự như
- C3 CAD-CAM>MHHCACTTHH 6 GVC NGUYỄN THẾ TRANH đường cong Ferguson có thể biểu diễn đường cong Bezier (3.8) dưới dạng phương trình đa thức: r(u) = (UM )R 3 3 3 3 = B0 (u)V0 + B1 (u)V1 + B2 (u)V2 + B3 (u)V3 (3.9) 3 3 = ∑ Bi (u)Vi i=0 trong đó: 3 3 3 2 B0 (u) = (1− u) ; B1 (u) = 3u(1− u) 3 2 3 3 B2 (u) = 3u (1− u) ; B3 (u) = u là đa thức Bernstein bậc 3. Đa thức Bernstein bậc n có dạng : n! B n (u) = u i (1− u)n−i (3.10a) i (n −1)!i! Đa thức Bernstein được gọi là hàm cơ sở Bezier sử dụng để định nghĩa đường cong Bezier bậc n bằng cách kết nối (n+1) đỉnh điều khiển: n n r(u) = ∑ Bi (u)Vi , với 0 ≤ u ≤ 1 (3.10b) i=0 Đường cong Bezier bậc n thoả điều kiện biên sau: r(0) = V0 ; r(1) = V1 ; r&(0) = n(V1 −V0 ) ; r&(1) = n(Vn −Vn−1 ) (3.11) Định nghĩa chuẩn về đường cong Bezier theo hàm cơ sở Bezier (3.10b) thể hiện tính chất hình học của đường cong tốt hơn so với biểu diễn dưới dạng ma trận (3.8), ví dụ như có thể chia nhỏ hoặc tăng bậc cho đường cong. Ngược mại dạng ma trận có ưu điểm là dễ dàng xử lý dữ liệu. 4. Đường cong B-spline đều. Mô hình toán học của đường cong B-spline là phương trình đại số. Ta sẽ nghiên cứu phép dựng hình để hiểu rõ tính chất hình học của dạng mô hình này. Xét 4 đỉnh điều khiển V0, ,V3 và các điểm M0, M1, P0, P1 với tính chất như sau: (Hình 3.3). M0 là điểm giữa của đoạn thẳng V0V2 : M0= (V0+V2)/2 M1 là điểm giữa của đoạn thẳng V1V3 : M1= (V1+V3)/2 P0 là điểm 1/3 của đoạn thẳng V1M0 : P0= (2V1+M0)/3 P1 là điểm 1/3 của đoạn thẳng V2M1 : P1= (2V2+M1)/3 Cần thiết lập đường cong bậc 3 r(u) thoả điều kiện: 1. Đường cong bắt đầu từ điểm P0 và kết thúc tại điểm P1, 2. Vectơ tiếp tuyến tại điểm P0 có giá trị bằng (M0-V0), 3. Vectơ tiếp tuyến tại điểm P1 có giá trị bằng (M1-V1). Như vậy ta có thể biểu diễn điểm biên P0, P1 và tiếp tuyến t0, t1 theo đỉnh điều khiển như sau:
- C3 CAD-CAM>MHHCACTTHH 7 GVC NGUYỄN THẾ TRANH P0 ≡ r(0) = [4V1+(V0+V2) ]/6 (3.12a) P1 ≡ r(1) = [4V2+(V1+V3) ]/6 (3.12b) t0 ≡ r&(0) = (V2 - V0) /2 (3.12c) t1 ≡ r&(0) = (V3 - V1) /2 (3.12d) hay dưới dạng ma trận: ⎡P0 ⎤ ⎡ 1 4 1 0⎤⎡V0 ⎤ ⎢ ⎥ ⎢ ⎥⎢ ⎥ P 1 0 1 4 1 V S ≡ ⎢ 1 ⎥ = ⎢ ⎥⎢ 1 ⎥ ≡ KR ⎢t0 ⎥ 6 ⎢− 3 0 3 0⎥⎢V2 ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎣ t1 ⎦ ⎣ 0 − 3 0 3⎦⎣V3 ⎦ Thay kết quả trên vào phương trình đường cong Ferguson (3.5) để đạt được phương trình đường cong B-spline đều bậc 3 biểu diễn bởi ma trận hệ số B-spline đều N và vectơ đỉnh điều khiển R: r(u) = U C S V3 M1 = U C (K R) V1 = U (C K) R = U N R với 0 ≤ u ≤1 trong đó: t0 C là ma trận Ferguson r(u) t1 P0 P1 ⎡ 1 4 1 0⎤ ⎢ ⎥ − 3 0 3 0 V2 1 M N = ⎢ ⎥ V 0 6 ⎢ 3 − 6 3 0⎥ 0 ⎢ ⎥ ⎣−1 3 − 3 1⎦ Hình 3.3 - Đường cong B-spline đều bậc 3 Tương tự như đường cong Bezier ta có thể biểu diễn đường cong B-spline đều 3 bậc 3 bởi hàm kết nối B-spline đều Ni (u) : 3 3 r(u) = (UN)R = ∑ Ni (u)Vi (3.14) i=0 3 2 3 3 2 3 trong đó: N 0 (u) = (1− 3u + 3u − u ) / 6 ; N1 (u) = (4 − 6u + 3u ) / 6 3 2 3 3 3 N 2 (u) = (1+ 3u + 3u − 3u ) / 6 ; N3 (u) = u / 6 3.1.4. ĐƯỜNG CONG B-SPLINE KHÔNG ĐỀU (NURBS) NURBS – Non-Uniform Rational B-Spline Phần này sẽ cung cấp định nghĩa toán học về đường cong B-spline không đều và chỉ ra rằng đường cong Bezier và B-spline đều là trường hợp đặc biệt của NURBS.
- C3 CAD-CAM>MHHCACTTHH 8 GVC NGUYỄN THẾ TRANH 1. Hàm cơ sở B-spline. n Xét hàm vô hướng đệ qui Li (t) được định nghĩa theo chuỗi điểm không giảm {ti}: n (t − ti ) n−1 (ti+1 − t) n−1 Li (t) = Li (t) + Li+1 (t) (3.15) (ti+n−1 − ti ) (ti+n − ti+1 ) trong đó: 1 ⎧1, t ∈[ti ,ti+1 ], ti < ti+1 Li (t) = ⎨ ⎩0,các t khác Hàm đệ qui (3.15) được gọi là hàm đệ qui Cox-deBoor là phương pháp chuẩn định nghĩa hàm cơ sở B-spline (bậc n-1). Ta sẽ khảo sát hàm này để hiểu rõ tính chất hình học của chúng. Xét n = 2: 2 (t − ti ) 1 (ti+1 − t) 1 Li (t) = Li (t) + Li+1 (t) (ti+1 − ti ) (ti+2 − ti+1 ) ⎧ (t − ti ) /(ti+1 − ti ), t ∈[ti ,ti+1 ] ⎪ = ⎨(ti+2 − t) /(ti+2 − ti+1 ),t ∈[ti+1 ,ti+2 ] ⎪ ⎩ 0, các t khác Để đơn giản các phép tính đại số ta sử dụng toán tử vi phân ∇ để biểu diễn khoảng cách giữa các điểm nút: ∇i = (ti+1 − ti ) (3.16a) k ∇i = ∇i + + ∇i+k −1 + (ti+k − ti ) (3.16b) Sử dụng toán tử vi phân ∇ , hàm Cox-deBoor với n = 2 có giá trị: ⎧ (t − ti ) / ∇i , t ∈[ti ,ti+1 ] 2 ⎪ Li (t) == ⎨(ti+2 − t) / ∇i+1 ,t ∈[ti+1 ,ti+2 ] ⎪ ⎩ 0, các t khác Với n = 3, ta có: (t − t ) (t − t) 3 i 2 i+3 2 Li (t) = 2 Li (t) + 2 Li+1 (t) ∇i ∇i 2 2 ⎧ (t − ti ) /(∇i ∇i ), t ∈[ti ,ti+1 ] ⎪ 2 2 3 2 2 ⎪(t − ti ) /(∇i ∇i ) − ∇i (t − ti+1 ) /(∇i+1∇i+1∇i ), t ∈[ti+1 ,ti+2 ] = ⎨ (3.17) (t − t)2 /(∇ 2 ∇ ), t ∈[t ,t ] ⎪ i+3 i+1 i+2 i+2 i+3 ⎩⎪ 0
- C3 CAD-CAM>MHHCACTTHH 9 GVC NGUYỄN THẾ TRANH Biểu thức (3.17) là hàm cơ sở B-spline bậc 2. Hình dáng chức năng của hàm cơ sở B-spline bậc nhỏ hơn 4 được thể hiện trên hình 3.4. Vì hàm cơ sở B-spline có hình dạng khác biệt trên từng miền tham số, hàm cơ sở trong khoảng thứ k được phân biệt bởi chỉ số thứ hai [k]: n n Li[k ] (t) ≡ Li (t) với t ∈[ti+k−1 ,ti+k ]: k =1,2, ,n (3.18) Theo qui ước trên thì hàm cơ sở B-spline (3.17) trên miền tham số đầu tiên t ∈[ti ,ti+1 ] được trình bày lại như sau: 3 3 2 2 Li[1] (t) ≡ Li (t) với t ∈[ti+k −1 ,ti+k ] = (t − ti ) /(∇i ∇i ) L1 (t) i t 2 Li (t) t 3 Li (t) t 4 Li (t) t ti ti+1 ti+2 ti+3 ti+4 Hình 3.4 - Hàm cơ sở B-spline không đều Hãy định nghĩa phép chuyển đổi tuyến tính giữa tham số u và t như sau: u = (t - ti)/(ti+1 - ti) = (t - ti)/∇i (3.19) Như được minh họa trên hình 3.5 chỉ có 3 hàm cơ sở B-spline bậc 2 có giá trị 3 3 3 khác không trên miền t ∈[ti ,ti+1 ], bao gồm Li−2[3] (t) , Li−1[ 2] (t) , Li−[1] (t) . 3 2 2 Li−2[3] (t) = (ti+1 − ti ) /(∇i−1.∇i ) 2 2 2 2 = (∇i / ∇i−1 ) + u(−2∇i / ∇i−1 ) + u (∇i / ∇i−1 ) (3.20a) 2 ≡ N 0 (u) với 0 ≤ u ≤1
- C3 CAD-CAM>MHHCACTTHH 10 GVC NGUYỄN THẾ TRANH 3 2 2 3 2 2 Li−1[2] (t) = (t − ti−1 ) /(∇i−1.∇i−1 ) − ∇i−1 (t − ti ) /(∇i ∇i∇i−1 ) ∇ ⎧ ∇ ∇3 ⎫ 2 2 2 i i i−1 (3.20b) = (∇i−1 / ∇i−1 ) + u(∇i / ∇i−1 ) + u ⎨ 2 − 2 ⎬ ∇i−1 ⎩∇i−1 ∇i ⎭ 2 ≡ N1 (u) với 0 ≤ u ≤1 3 2 2 Li−[1] (t) = (t − ti ) /(∇i .∇i ) 2 2 = (u∇i ) /(∇i .∇i ) (3.20c) 2 ≡ N 2 (u) với 0 ≤ u ≤1 L3 L3 L3 L3 L3 i−3] i−2[3] i−1[ 2] i[1] i+1 t t ti-2 ti-1 i ti+1 ti+2 ti+3 Hình 3.5 - Hàm cơ sở B-spline bậc 2 khác 0 trên miền [ti, ti+1][2] 2. Đường cong B-spline không đều. 3 Với chuỗi điểm 3D cho trước {Pj} và hàm cơ sở B-spline (bậc 2) L j (t) (3.17) trên miền tham số t ∈[ti ,ti+1 ], ta thiết lập hàm vectơ: i 3 r(t) = ∑ Pj L j (t) :t ∈[ti ,ti+1 ] (3.21) j=i−2 Như đã minh hoạ trên hình 3.5, hàm kết nối (3.21) có giá trị khác 0 chỉ khi j=i- 2, i-1, i. Ta đặt: V0 = Pi-2; V1 = Pi-1; V2 = Pi từ (3.17) và (3.20) hàm vectơ (3.21) được biểu diễn bởi: i 3 r(t) = ∑ Pj L j (t) với t ∈[ti ,ti+1 ] j=i−2 3 3 3 = Pi−2 Li−2 (t) + Pi−1Li−1 (t) + Pi Li (t) với t ∈[ti ,ti+1 ] (3.22) 3 3 3 = V0 Li−2[3] (t) +V1Li−1[ 2] (t) +V2 Li[1] (t) 2 2 2 = V0 N 0 (u) +V1 N1 (u) +V2 N 2 (u) = UN q R ≡ r(u) với u ∈[0,1] 2 T trong đó: U = []1 u u ; R = [V0 V1 V2 ]
- C3 CAD-CAM>MHHCACTTHH 11 GVC NGUYỄN THẾ TRANH ⎡ ⎤ ⎢ (∇ / ∇ 2 ) (∇ / ∇ 2 ) 0 ⎥ Ma trận hệ ⎢ i i−1 i−1 i−1 ⎥ 2 2 số B-spline N q = ⎢(−2∇i / ∇i−1 ) (2∇i / ∇i−1 ) 0 ⎥ : không đều ⎢ ∇ ⎧ ∇ ∇3 ⎫ ∇ ⎥ bậc 2 2 i i i−1 i ⎢ (∇i / ∇i−1 ) ⎨ 2 − 2 ⎬ 2 ⎥ ⎣⎢ ∇i−1 ⎩∇i−1 ∇i ⎭ ∇i ⎦⎥ 2 ∇i = (ti+1 − ti ); ∇i = ∇i + ∇i+1 , và đường cong (3.22) được gọi là đường cong NUBRS bậc 2. Khảo sát giá trị của hàm kết nối B-spline không đều bậc 2, ta có thể rút ra kết luận: đường cong NURBS bậc 2 được hỗ trợ bởi 6 điểm nút ti-2 đến ti+3, ngay cả khi miền tham số xác định là [ti, ti+1] (Hình 3.5). Tuy nhiên các điểm biên ti-2 và ti+3 không cần thiết bởi vì dữ liệu này không được sử dụng để xác định đường cong. Do đó đường cong NURBS bậc 2 hoàn toàn được xác định bởi 3 giá trị bước nút ∇i−1 ,∇i ,∇i+1 và 3 đỉnh điều khiển V0, V1, V2. Tương tự ta có đường cong NURBS bậc 3 có dạng như sau: i 4 r(t) = ∑ Pj Lj (t) với t ∈[ti ,ti+1 ] (3.23) j=i−3 = UN c R ≡ r(u) với u ∈[0,1] 3. Trường hợp đặc biệt của đường cong NURBS. Qua khảo sát ta thấy rằng đường cong NURBS bậc 3 (3.23) có dạng tương tự như đường cong B-spline đều bậc 3 (3.13), nhưng ma trận hệ số Nc không phụ thuộc vào khoảng cách giữa các điểm nút. Do vậy với cùng tập hợp đỉnh điều khiển, ta có thể đạt được hình dáng đường cong khác nhau bằng cách thay đổi khởng cách giữa các điểm nút. Khi tất cả điểm nút {ti} được xác định trên miền số nguyên liên tục và khoảng 2 cách giữa chúng đều nhau, nếu đặt ∇i = 1, với mọi i và từ đó ∇i = 2 , , ma trận hệ số Nc của đường cong NURBS (3.23) trở thành ma trận N của đường cong B-spline đều bậc 3 (3.13). Như vậy đường cong B-spline đều bậc 3 (3.13) là trường hợp đặc biệt của đường cong NURBS khi khoảng cách giữa các điểm nút đều nhau. Tương tự, đường cong NURBS có thể trở thành đường cong Bezier nếu đặt các giá trị: ti-2 = ti-1 = ti = 0; ti+1 = ti+2 = ti+3 = 1 Từ đó ta có khoảng cách giữa các điểm nút tương ứng có giá trị như sau: ∇i = 1; ∇j = 0, với mọi j ≠ i Điều này làm cho ma trận hệ số B-spline không đều bậc 3 Nc (3.23) biến đổi thành ma trận hệ số M của đường cong Bezier bậc 3 (3.8).
- C3 CAD-CAM>MHHCACTTHH 12 GVC NGUYỄN THẾ TRANH Vậy cả 2 đường cong B-spline đều và Bezier chỉ là trường hợp đặc biệt của dường cong NURBS. 3.1.5. ĐƯỜNG CONG HỮU TỶ. Hàm hữu tỷ được định nghĩa như là tỷ số của 2 hàm đa thức. Đường cong hữu tỷ có độ linh hoạt về hình dáng cao hơn so với các dạng đường cong đa thức chuẩn tắc khác. Đường cong hữu tỷ sẽ có dạng đa thức chuẩn tắc nếu như được biểu diễn theo hệ toạ độ đồng nhất. Ta sẽ khảo sát dạng hữu tỷ của mô hình đường cong Bezier. 1. Toạ độ đồng nhất. Ta đã biết phương trình tham số của đường tròn đơn vị như sau: r(u) = (x(u), y(u), z(u)) = ((1-u2)/(1+u2), 2u/(1+u2), 0/(1+u2)) Vì mỗi tyhành phần của vectơ 3D trên có cùng mẫu số, nên ta có thể chuyển chúng thành vectơ đồng nhất 4 thành phần R(u) với 3 thành phần đầu tiên ứng với tử số và thành phần thứ 4 ứng với mẫu số chung: R(u) = ((1-u2), 2u, 0, (1+u2)) = (X(u), Y(u), Z(u), h(u)) Vectơ R(u) được gọi là vectơ đồng nhất và thành phần của chúng trở thành toạ độ đồng nhất của điểm 3D (r(u)). Ta có thể chuyển đổi (X, Y, Z, h) thành (X/h, Y/h, Z/h, 1) tức là thành (x, y, z, 1). Sự chuyển đổi này gọi là sự chuẩn hoá. Ý nghĩa hình học của sự chuẩn hoá là vectơ 4D được chiếu lên mặt phẳng h = 1 trong không gian 4 chiều. Như vậy vectơ đồng nhất (x, y, z, 1) và (hx. hy, hz, h) biểu diễn cùng một điểm 3D (x, y, z) nếu h ≠ 0 . Theo mô hình hữu tỷ mõi dỉnh điều khiển Vi(xi, yi, zi) được định nghĩa như đỉnh điều khiển đồng nhất: Hi = (wixi, wiyi, wizi, wi ) trọng số wi làm tăng tính linh hoạt về hình dáng. Biểu diễn toạ độ Đề các dưới dạng đồng nhất được sử dụng rộng rãi trong các phép biến đổi tạo độ ứng dụng trong đồ hoạ cũng như Robot học. 2. Đường cong hữu tỷ bậc 2. Nếu vectơ đỉnh điều khiển Bezier chuẩn tắc được thay thế bởi vectơ đồng nhất tưong ứng ta sẽ đạt được đường cong Bezier hữu tỷ. Đường cong Bezier bậc 2 có dạng: 2 2 r(u) = (x(u), y(u), z(u)) = ∑ Bi (u)Vi , với 0 ≤ u ≤ 1 (3.10b) i=0 h đặt : Vi = (xi , yi , zi ,1) , với i = 0, 1, 2. Ta chuyển đổi đường cong Bezier bậc 2 này thành dạng hữu tỷ.
- C3 CAD-CAM>MHHCACTTHH 13 GVC NGUYỄN THẾ TRANH Sử dụng Hi để biểu diển đỉnh điều khiển đồng nhất của Vi, sao cho: h H i = wiVi = (wi xi , wi yi , wi zi , wi ) ; wi ≠ 0 (3.25) Toạ độ Đề các của đỉnh điều khiển đồng nhất Hi trên biểu thức (3.25) tương đương với đỉnh điều khiển Vi, không phụ thuộc vào trọng số wi. Do vậy đường cong Bezier hữu tỷ bậc 2 được biểu diễn dưới dạng: 2 2 R(u) = (X (u),Y (u), Z(u),h(u)) = ∑ Bi (u)H i (3.26) i=0 Ta sẽ khảo sát hình dánh đường cong đồng nhất này. Điều kiện biên của đường cong hữu tỷ được xác định bằng cách tính biểu thức (3.26) và đạo hàm của chúng tại u = 0 và u = 1. Đặt rh(u) là phương trình đồng nhất chuẩn tắc như sau: rh(u) = R(u)/h(u) = (x(u), y(u), z(u), 1) (3.27) Lấy đạo hàm phương trình trên theo u ta có: h 2 r& (u) = −(R(u)h&(u)) /(h(u)) − R&(u) / h(u) (3.28) Cụ thể đối với đường cong Bezier bậc 2 ta có: w w h h h 1 ; h h h 1 r& (0) = 2(V1 −V0 ). r& (1) = 2(V2 −V1 ). w0 w2 Kết quả trên chứng tỏ rằng tiếp tuyến của đường cong Bezier đồng nhất (3.26) và đường cong Bezier chuẩn tắc (3.24) tại các điểm biên có cùng phương với nhau nhưng độ lớn của chúng thay đổi theo tỷ lệ w1/w0 và w1/w2 (Hình 3.6). V1 V1 t0=2(w1/w0)(V1-V0) t0=2(V1-V0) V2 V2 r(u) r(u) t1=2(V2-V1) V0 V0 t1=2(w1/w2)((V2-V1) a. b. Hình 3.6 - Tính chất của đường cong Bezier hữu tỷ - Đường cong Bezier chuẩn tắc. - Đường cong Bezier hữu tỷ bậc 2. Phương trình Bezier đồng nhất (3.26) được biểu diễn dưới dạng thành phần đồng nhất như sau: R(u) = (X (u),Y (u), Z(u),h(u)) 2 2 2 2 2 2 2 2 (∑∑Bi (u)wi xi ,∑ Bi (u)wi yi ,∑ Bi (u)wi zi , Bi (u)wi ) i=0 i=0 i=0 i=0
- C3 CAD-CAM>MHHCACTTHH 14 GVC NGUYỄN THẾ TRANH Và phương trình Bezier được biểu diễn ngắn gọn hơn dưới dạng hữu tỷ: r(u) = (x(u), y(u), z(u)) w (1− u)2V + w 2u(1− u)V + w u 2V 0 0 1 1 2 2 (3.30) = 2 2 w0 (1− u) + w1 2u(1− u) + w2u 2 2 2 2 (∑ Bi (u)wiVi )/(∑ Bi (u)wi ) i=0 i=0 trong đó: Vi = (xi, yi, zi) : đỉnh điều khiển Bezier, wi : trọng số. Như vậy ta đã chỉ ra rằng có thể biểu diễn đường cong Bezier hữu tỷ hoặc dưới dạng đồng nhất (3.26) hoặc dưới dạng hữu tỷ (3.30) và đường cong Bezier hữu tỷ bậc 2 được chuyển đổi thành đường cong chuẩn tắc khi wi = 1 với mọi i. Mô hình đường cong hữu tỷ bậc 2 được sử dụng rất phổ biến trong phép tham số hoá đường cong mặt cắt cônic. 3. Đường cong hữu tỷ bậc 3. Ta có thể dễ dàng xác định mô hình hữu tỷ cho đường cong Bezier và B-spline bậc cao hơn. Đường cong Bezier bậc 3 hữu tỷ có dạng đồng nhất tương tự như đường cong Bezier chuẩn tắc (3.7): R(u) = (X(u), Y(u), Z(u), h(u)) = U M H (3.31) 2 3 trong đó: U = [1 u u u ]; Hi = (wixi, wiyi, wizi, wi) ⎡ 1 0 0 0⎤ ⎡H 0 ⎤ ⎢− 3 3 0 0⎥ ⎢H ⎥ M = ⎢ ⎥ ; H = ⎢ 1 ⎥ ⎢ 3 − 6 3 0⎥ ⎢H 2 ⎥ ⎢ ⎥ ⎢ ⎥ ⎣−1 3 − 3 1⎦ ⎣H 3 ⎦ Vi(xi,yi,zi) : đỉnh điều khiển, wi : trọng số. Dạng dồng nhất trên tương đương với dạng hữu tỷ sau: 3 3 3 3 r(u) = (∑ Bi (u)wiVi )/(∑ Bi (u)wi ) i=0 i=0 Mô hình đường cong hữu tỷ có bậc tự do cao hơn dùng để định nghĩa hình dáng. Sử dụng các giá trị trọng số khác nhau có thể điều khiển hình dáng đường cong hữu tỷ trong miền giới hạn bởi đa tuyến đặc tính. Nhưng quá nhiều bậc tự do thường không phải là tốt, thực tế rất ít khi sử dụng bậc cao hơn 2. 3.2. ĐƯỜNG CONG PHỨC HỢP Trong các bài toán dựng hình, phần lớn dữ liệu cho trước ở dạng dữ liệu điểm. Dữ liệu điểm có thể là dữ liệu thực nghiệm từ các phép đo bằng dụng cụ thông thường hay bằng máy quét toạ độ. Vấn đề cần giải quyết trong các bài toán này là thiết lập đường cong tham số trơn láng r(t) từ chuỗi điểm {Pi: i = 0, ,n}. Với cấu hình dữ liệu điểm này, ta thường sử dụng mô hình đường cong phức hợp từ các đoạn cong liên kết theo chuỗi.
- C3 CAD-CAM>MHHCACTTHH 15 GVC NGUYỄN THẾ TRANH Về mặt lý thuyết, để dựng đường cong phức hợp có thể sử dụng mô hình đường cong bất kỳ như chương trước đã đề cập. Tuy nhiên mô hình đường cong Ferguson và B-spline được sử dụng phổ biến nhất do các đặc điểm: • Dễ sử dụng, • Có hiệu suất tính toán cao, • Có tính liên tục về toán học, • Đạt được độ trơn láng thẫm mỹ và độ đồng đều của đường cong. Về cơ bản, giải quyết vấn đề dựng đường cong phức hợp là giải hệ phương trình tuyến tính. Bằng cách đặt điều kiện liên tục bậc 2 tại mỗi điểm Pi, chúng ta thiết lập được hệ phương trình tuyến tính với các ẩn số là hệ số của phương trình đường cong. Do vậy, để dựng đường cong phức hợp cần thiết phải có các điều kiện liên tục thích hợp và giải được hệ phương trình tuyến tính. Ở đây ta sẽ khảo sát phương pháp dựng hình theo các dạng mô hình sau: a. Mô hình cấu hình dữ liệu điểm cách đều: - Đường cong bậc 3, - Đường cong B-spline đều. b. Mô hình cấu hình dữ liệu điểm không cách đều: - Đường cong cát tuyến, - Đường cong B-spline không đều. c. Mô hình đường cong 2D: - Theo cấu trúc cung đôi, - Theo đường mặt cắt conic. 3.2.1. DỰNG ĐƯỜNG CONG TỪ CHUỖI ĐIỂM CÁCH ĐỀU. 1. Điều kiện liên tục tham số. Xét 2 đoạn đường cong ra(u) và rb(u) (Hình 3.7) trên miền tham số u ∈[0,1]. Để 2 đoạn đường cong kết nối với nhau, chúng phải thoả điều kiện liên tục vị a b trí: r (1) = P1 = r (0) (3.32a) Đường cong phức hợp được gọi là liên tục bậc nhất (C1) nếu đạo hàm bậc nhất của 2 đoạn đường cong tại điểm kết nối có giá trị như nhau: a b r& (1) = t1 = r& (0) (3.32b) Đường cong phức hợp được gọi là liên tục bậc 2 nếu: a b &r& (1) = &r& (0) (3.32c) Các điều kiện (3.32) được gọi chung là điều kiện liên tục tham số C2. Giả thiết đường cong phức hợp đi qua 3 t2 điểm cho trước P0, P1, P2 với tiếp tuyến đầu P2 cuối t0, t2 (Hình 3.7). Nếu vectơ tiếp tuyến t1 tại b . t0 P1 r (u) điểm kết nối cũng được cho trước ta có thể mô . a tả mỗ i đoạn đường cong như đường Ferguson. . r (u) P0 t1 Vì vậy ta sẽ xác định t1 sao cho 2 đoạn đường cong thoả điều kiện liên tục tham số C2 tại điểm kết nối P1, tức là cần xác định t1 từ dữ liệu Hình 3.7 - Điều kiện liên tục cho tr ước (P0, P1, P2, t0, t2) và điều kiện liên tục tham số tại điểm kết nối tham số C2.
- C3 CAD-CAM>MHHCACTTHH 16 GVC NGUYỄN THẾ TRANH 2. Dựng đường cong phức hợp bậc 3. a b Đầu tiên ta sẽ xác định tiếp tuyến chung t1 của 2 đoạn đường cong r (u) và r (u) sao cho thoả điều kiện liên tục tham số C2 (3.32). Phương trình Ferguson cho 2 đoạn đường cong được biểu diễn như sau: ra(u) = U C Sa ; rb(u) = U C Sb (3.33) ⎡ 1 0 0 0 ⎤ ⎢ 0 0 1 0 ⎥ trong đó: U = []1 u u 2 u 3 ; C = ⎢ ⎥ ⎢− 3 3 − 2 −1⎥ ⎢ ⎥ ⎣ 2 − 2 1 1 ⎦ a T b T S = []P0 P1 t0 t1 ; S = [P1 P2 t1 t2 ] Ta có: r a (1) = U&&CSa = []0 0 2 6 CS a = 6P − 6P + 2t + 4t (3.34a) && u =1 0 1 0 1 r b (0) = U&&CSb = [0 0 2 0]CS b = −6P + 6P − 4t − 2t (3.34b) && u=0 1 2 1 2 2 Kết hợp với điều kiện C , ta có: t1 =(3P2-3P0-t0-t2)/4 (3.35) Xét trường hợp tổng quát, dựng đường cong liên tục C2 đi qua chuỗi (n+1) điểm {Pi} (hình 3.8). Giả thiết tiếp tuyến đầu cuối t0, tn được cho trước. Đặt vectơ tiếp tuyến i-1 i tại điểm kết nối Pi là ti, khi đó mỗi cặp đường cong kế cận r (u) và r (u) thoả phương trình tuyến tính (3.36): ti−1 + 4ti + ti+1 = 3(Pi+1 − Pi−1 ) i=1, ,n-1 (3.36) Ta có thể biểu diễn hệ phương trình trên dưới dạng ma trận: A X = B trong đó: A là ma trận hệ số cấp (n+1)x(n+1); X là vectơ ẩn của phương trình. Pn-1 t 0 Pn tn P1 P2 Pn-2 P0 Hình 3.8 - Chuỗi điểm cần nội suy Sau khi sắp xếp các phương trình (3.36), ta có: ⎡1 1 0 0 ⎤⎡ t0 ⎤ ⎡ t0 ⎤ ⎢1 1 1 0 ⎥⎢ t ⎥ ⎢ 3(P − P ) ⎥ ⎢ ⎥⎢ 1 ⎥ ⎢ 2 0 ⎥ ⎢0 1 1 1 ⎥⎢ t2 ⎥ ⎢ 3(P3 − P1 ) ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ . . . . . . . . . . ⎢ ⎥⎢ ⎥ = ⎢ ⎥ (3.37) ⎢ . . . . . . . . ⎥⎢ . ⎥ ⎢ . ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ 1 1 1 0⎥⎢tn−2 ⎥ ⎢3(Pn−1 − Pn−3 )⎥ ⎢ 0 1 1 1⎥⎢t ⎥ ⎢ 3(P − P ) ⎥ ⎢ ⎥⎢ n−1 ⎥ ⎢ n n−2 ⎥ ⎣⎢ 0 0 1 1⎦⎥⎣⎢ tn ⎦⎥ ⎣⎢ tn ⎦⎥
- C3 CAD-CAM>MHHCACTTHH 17 GVC NGUYỄN THẾ TRANH i Với vectơ tiếp tuyến ti, đường cong Ferguson r (u) trên miền [Pi, Pi+1] được xác định bởi: ri(u) = U C Si , với i = 0, 1, ,n-1 (3.38) i T trong đó: S = [Pi, Pi+1, ti, ti+1] U và C được định nghĩa theo (4.2). Trong thực tế, hầu hết các trường hợp tiếp tuyến đầu cuối t0, tn không được cho trước. Do vậy ta có thể xác định tiếp tuyến đầu cuối theo một trong các điều kiện sau: a. Điều kiện biên tiếp tuyến đường tròn. b. Điều kiện biên đa thức. c. Điều kiện biên tự do. Điều kiện biên tiếp tuyến vòng tròn. Dựng đường tròn qua 3 điểm đầu. Đặt : P1 t0 Q là tâm đường tròn cần dựng, a b P2 r là bán kính: r = Q-P0, P0 r a=P1-P0, b=P2-P0, c = a x b. Phương của tiếp tuyến t0 sẽ vuông góc với đoạn thẳng r = Q-P0 và vectơ Q c = a x b , ta có: t0 = a (r × c)/ r × c (3.39) Hình 3.9 - Tiếp tuyến đường tròn Có thể nhận thấy rằng vectơ chưa biết r = Q-P0 được xác định bởi: 2 2 2 r = {a (b× c) + b (c × a)}/(2c ) (3.40) Điều kiện biên đa thức. Tiếp tuyến đầu cuối t0, tn được xác định bằng cách dựng đường cong đa thức chuẩn tắc qua các điểm biên ( 3 hoặc 4 điểm). Tiếp tuyến t0 = r&(0). Điều kiện biên tự do. Giả thiết rằng độ cong tại các điểm P0, Pn bằng 0. Điều kiện này tương ứng với trạng thái khi đường cong phức hợp không bị ảnh hưởng bởi điều kiện ngoại vi nào tại các điểm biên: n−1 &r&(0) = 0 ; &r& (1) = 0 Theo điều kiện biên tự do, biểu thức (4.3a) và (4.3b) được biến đổi thành: 2t0 + t1 = 3(P1 − P0 ) ; 2tn + tn−1 = 3(Pn − Pn−1 ) Hai phương trình tuyến tính này bổ sung vào hệ phương trình (3.37) để tạo thành hệ (n+1) phương trình tuyến tính với (n+1) ẩn số: t0, ,tn:
- C3 CAD-CAM>MHHCACTTHH 18 GVC NGUYỄN THẾ TRANH ⎡2 1 0 0 ⎤⎡ t0 ⎤ ⎡ 3(P1 − P0 ) ⎤ ⎢1 4 1 0 ⎥⎢ t ⎥ ⎢ 3(P − P ) ⎥ ⎢ ⎥⎢ 1 ⎥ ⎢ 2 0 ⎥ ⎢0 1 4 1 ⎥⎢ t2 ⎥ ⎢ 3(P3 − P1 ) ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ . . . . . . . . . . ⎢ ⎥⎢ ⎥ = ⎢ ⎥ (3.41) ⎢ . . . . . . . . ⎥⎢ . ⎥ ⎢ . ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ 1 4 1 0⎥⎢tn−2 ⎥ ⎢3(Pn−1 − Pn−3 )⎥ ⎢ 0 1 4 1⎥⎢t ⎥ ⎢ 3(P − P ) ⎥ ⎢ ⎥⎢ n−1 ⎥ ⎢ n n−2 ⎥ ⎣⎢ 0 0 1 2⎦⎥⎣⎢ tn ⎦⎥ ⎣⎢ 3(Pn − Pn−1 ) ⎦⎥ Kết luận: Đối với phương pháp dựng hình này, không phụ thuộc vào điều kiện biên, đường cong phức hợp bậc 3 bao gồm các đoạn đường cong Ferguson và có thể chuyển đổi dễ dàng thành đường cong Bezier bậc 3. 3. Dựng đường cong phức hợp B-spline đều. Xét phương pháp dựng đường cong phức hợp trơn láng đi qua chuỗi điểm {Pi : i=0, ,n} sử dụng mô hình đường cong B-spline đều (3.13). Đường cong kết quả bao gồm nhiều đoạn đường cong B-spline đều bậc 3 kết nối theo điều kiện liên tục C2. b Ví dụ nếu gán thêm điểm điều khiển V3 cho đoạn đường cong B-spline đều trên Hình 3.3, chúng ta sẽ có đoạn đường cong mới (Hình 3.10). Phương trình của 2 đường cong có dạng: ra(u) = U N Ra ; rb(u) = U N Rb (3.42) trong đó: U = [1 u u2 u3] a b ⎡ 1 4 1 0⎤ ⎡V0 ⎤ ⎡V0 ⎤ ⎢ ⎥ ⎢ a ⎥ ⎢ b ⎥ 1 − 3 0 3 0 V V ⎢ ⎥ ; a ⎢ 1 ⎥ ; b ⎢ 1 ⎥ N = R = a R = b 6 ⎢ 3 − 6 3 0⎥ ⎢V2 ⎥ ⎢V2 ⎥ ⎢ ⎥ ⎢ a ⎥ ⎢ b ⎥ ⎣−1 3 − 3 1⎦ ⎣V3 ⎦ ⎣V3 ⎦ a b V = V 3 2 a b M1 V1 = V0 b t0 a r (u) r (u) P0 V b 3 a b M0 V2 = V1 a V0 Hình 3.10 - Dựng đường cong B-spline đều phức hợp
- C3 CAD-CAM>MHHCACTTHH 19 GVC NGUYỄN THẾ TRANH Ta thấy rằng các đỉnh điều khiển của 2 đường cong trùng nhau: b a b a b a V0 ≡ V1 ; V1 ≡ V2 ; V2 ≡ V3 Bằng cách xây dựng đường cong theo biểu thức (4.11), dễ dàng thấy rằng: a a a a b b b b r (1) = (V1 + 4V2 +V3 )/ 6 ≡ r (0) = (V0 + 4V1 +V2 )/ 6 (3.43) và các đạo hàm của chúng sự bằng nhau. Theo điều kiện liên tục C2, ta có: b a b a b a r (0) = r (1) ; r& (0) = r& (1) ; &r& (0) = &r& (1) (3.44) Như vậy vấn đề dựng đường cong B-spline đều phức hợp từ chuỗi (n+1) điểm {Pi : i=0,1, ,n} tương đương với việc xác định (n+3) đỉnh điều khiển {Vi : i=0,1, ,n+2}. Từ điều kiện liên tục vị trí (4.12) ta có: V i+4Vi+1+Vi+2 = 6Pi , với i = 0,1, ,n (3.45) • Khi tiếp tuyến đầu cuối được cho trước ta có thêm 2 phương trình: 0 V2 −V0 = 2t0 ≡ 2r& (0) (3.46) n−1 Vn+2 −Vn = 2tn ≡ 2r& (1) Giải hệ phương trình (4.14) và (4.15) để xác định các đỉnh điều khiển Vi. Hệ phương trình tuyến tính theo điều kiện biên được biểu diễn dưới dạng ma trận: ⎡−1 0 1 0 ⎤⎡ V0 ⎤ ⎡ 2t0 ⎤ ⎢ 1 4 1 0 ⎥⎢ V ⎥ ⎢ 6P ⎥ ⎢ ⎥⎢ 1 ⎥ ⎢ 0 ⎥ ⎢ 0 1 4 1 ⎥⎢ V2 ⎥ ⎢ 6P1 ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ . . . . . . . . . . ⎢ ⎥⎢ ⎥ = ⎢ ⎥ (3.47) ⎢ . . . . . . . . ⎥⎢ . ⎥ ⎢ . ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ 1 4 1 0 ⎥⎢ Vn ⎥ ⎢6Pn−1 ⎥ ⎢ 0 1 4 1 ⎥⎢V ⎥ ⎢ 6P ⎥ ⎢ ⎥⎢ n+1 ⎥ ⎢ n ⎥ ⎣⎢ 0 1 0 −1⎦⎥⎣⎢Vn+2 ⎦⎥ ⎣⎢ 2tn ⎦⎥ • Nếu tiếp tuyến đầu cuối không được cho trước ta có thể xác định theo điều kiện biên tiếp tuyến đường tròn hoặc điều kiện biên đa thức. Theo điều kiện biên tự do để đơn giản ta có thể cho độ cong tại 2 điểm biên của đường cong phức hợp bằng 0, nên ta nhận được hệ phương trình tuyến tính với (n+3) ẩn số:
- C3 CAD-CAM>MHHCACTTHH 20 GVC NGUYỄN THẾ TRANH ⎡1 −1 0 0 ⎤⎡ V0 ⎤ ⎡ 0 ⎤ ⎢1 4 1 0 ⎥⎢ V ⎥ ⎢ 6P ⎥ ⎢ ⎥⎢ 1 ⎥ ⎢ 0 ⎥ ⎢0 1 4 1 ⎥⎢ V2 ⎥ ⎢ 6P1 ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ . . . . . . . . . . ⎢ ⎥⎢ ⎥ = ⎢ ⎥ (3.48) ⎢ . . . . . . . . ⎥⎢ . ⎥ ⎢ . ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ V ⎢ 1 4 1 0⎥⎢ n ⎥ ⎢6Pn−1 ⎥ ⎢ 0 1 4 1⎥⎢V ⎥ ⎢ 6P ⎥ ⎢ ⎥⎢ n+1 ⎥ ⎢ n ⎥ ⎣⎢ 0 0 −1 1⎦⎥⎣⎢Vn+2 ⎦⎥ ⎣⎢ 0 ⎦⎥ Khi đỉnh điều khiển Vi đã được xác định, đường cong B-spline đều bậc 3 qua điểm {Pi,Pi+1} được biểu diễn bởi: ri(u) = U N Ri , với i = 0,1, ,n-1 (3.49) i T trong đó: R = []Vi Vi+1 Vi+2 Vi+3 Như vậy đường cong phức hợp bao gồm n đoạn đường cong xác định bởi (n+3) đỉnh điều khiển {Vi : i = 0,1, ,n+2}. Trong cả 2 phép dựng hình chúng ta đều sử dụng điều kiện liên tục tham số C2, tức là tại điểm kết nối Pi ta sử dụng chung một vectơ tiếp tuyến ti cho cả 2 đoạn đường cong: i−1 i r& (1) = t1 = r& (0) Do vậy ta có thể suy ra rằng: đường cong phức hợp có thể là phẳng hoặc lồi khi khoảng cách vật lý giữa các điểm dữ liệu không bằng nhau. Như thế nếu khoảng cách vật lý không bằng nhau chúng ta phải sử dụng phương pháp khác. 3.2.2. DỰNG ĐƯỜNG CONG TỪ CHUỖI ĐIỂM KHÔNG CÁCH ĐỀU. Khảo sát theo 2 dạng mô hình: - Đường cong cát tuyến: dùng phương pháp dựng đường cong bậc 3 với hiệu chỉnh sao cho chiều dài cát tuyến được tính đến khi xác định vectơ tiếp tuyến ti. - Đường cong B-spline không đều: dùng phương pháp cho chiều dài cát tuyến như là khoảng cách giữa các điểm nút. Hai phương pháp này đều thích hợp trong việc dựng các đường cong phức hợp trơn láng đi qua chuỗi điểm phân bố không đều. 1. Điều kiện liên tục hình học. Hai đoạn đường cong kế cận ra(u) và rb(u) thoả điều kiện ra(1) = rb(0), được gọi là liên tục tiếp tuyến, nếu thoả: a a b b r& (1) / r& (1) = r& (0)/ r& (0) = T (3.50a) trong đó: T là vectơ tiếp tuyến đơn vị tại điểm kết nối.
- C3 CAD-CAM>MHHCACTTHH 21 GVC NGUYỄN THẾ TRANH Mối quan hệ trên được gọi là điều kiện hình học C1, hay được gọi tắt là điều kiện G1. Nếu đặt : a a r& (1) = t1 ; r& (1) = α b r& (0) = β ; ω = β /α thì (4.19a) trở thành: a b r& (1) = t1 ; r& (0) = ωt1 (3.50b) Cho r(u) là đường cong tham số chuẩn tắc. Đạo hàm của r(u) được tính như sau: r& = dr / du = (dr / ds) /(ds / du) ≡ Ts& &r& = dr& / du = s&(dT / du) + (ds&/ du)T 2 2 = s& (dT / ds) + &s&T = s& kN + &s&T Thực hiện tích vectơ với 2 đạo hàm trên: 2 3 3 r&× &r& = s&T × s& kN = s& k(T × N) ≡ r& kB trong đó: B = T x N là vectơ pháp tuyến đôi của đường cong. Do đó có thể biểu diễn độ cong của đường cong tham số r(u) bởi: 3 kB = (r&× &r&) / r& (3.51a) Đường cong ra(u) và rb(u) liên tục theo độ cong tại điểm ra(1) = rb(0), nếu thoả điều kiện: r a (1)× r a (1) r b (0)× r b (0) & && = & && (3.51b) a 3 b 3 r& (1) r& (0) b 2 a Suy ra: T × &r& (0) = (β /α) (T × &r& (1)) Nghiệm của phương trình vectơ là: b 2 a &r& (0) = (β /ω) &r& (1) (3.52) Mối quan hệ giữa các đạo hàm bậc 2 này được gọi là điều kiện liên tục hình học C2 hay được gọi tắt là điều kiện G2. 2. Dựng đường cong cát tuyến. Ví dụ ta dựng đường cong t0 a r (u) t2 phức hợp trơn láng qua 3 điểm P0, P1 β P1, P2 với vectơ tiếp tuyến đầu cuối P0 P2 t0, t2 (Hình 3.10) theo mô hình α 2 t1 b Ferguson và điều kiện G . r (u) Hình 3.10-Đường cong cát tuyến Cho ra(u) và rb(u) là 2 đợn đường cong Ferguson. Việc cần giải quyết là xác định vectơ tiếp tuyến t1 chưa biết tại điểm kết nối. a Giả sử t1 là vectơ tiếp tuyến tại điểm cuối của đoạn cong r (u): a (3.53a) t1 = r& (1) Điều kiện liên tục G2 yêu cầu vectơ tiếp tuyến tại điểm đầu của đoạn cong rb(u) thoả điều kiện:
- C3 CAD-CAM>MHHCACTTHH 22 GVC NGUYỄN THẾ TRANH b (3.53b) r& (0) = ωt1 Theo phương pháp dựng đường cong cát tuyến, độ lớn của vectơ tiếp tuyến tại điểm kết nối được đặt bằng chiều dài cát tuyến: α = P1 − P0 ; β = P2 − P1 Do vậy tỷ số độ lớn của các vectơ trở thành tỷ số chiều dài cát tuyến. Điều kiện G2 được viết lại như sau: b 2 a &r& (0) = ω &r& (1) (3.54) trong đó: ω = P2 − P1 / P1 − P0 Viết lại phương trình Ferguson cho đường cong ra(u) và rb(u) : ra(u) = U C Sa (3.55a) rb(u) = U C Sb (3.55b) trong đó: ⎡ 1 0 0 0 ⎤ ⎢ 0 0 1 0 ⎥ U = []1 u u 2 u 3 ; C = ⎢ ⎥ ⎢− 3 3 − 2 −1⎥ ⎢ ⎥ ⎣ 2 − 2 1 1 ⎦ a T b T S = []P0 P1 t0 t1 ; S = [P1 P2 ωt0 t1 ] Sau khi tính đạo hàm bậc 2 của các biểu thức (3.55) ta có thể xác định được t1 theo điều kiện G2: 2 (−6P1 + 6P2 − 4ωt1 − 2t2 ) = ω (6P0 − 6P1 + 2t0 + 4t1 ) (3.56) Xét trường hợp tổng quát: dựng đường cong đi qua (n+1) điểm thoả điều kiện G2. Cho trước: Chuỗi điểm 3D : {Pi : i = 0,1, ,n} Vectơ tiếp tuyến biên : t0, tn Xác định: Hệ số tỷ lệ cát tuyến: {ω = P − P / P − P : i = 1,2, , n −1} với ω = 1. i i+1 i i i−1 0 Tiếp tuyến : {ti : i = 1,2, ,n-1} i Cho r (u) là đoạn dường cong Ferguson trên miền [Pi, Pi+1], được biểu diến: ri(u) = U C Si (3.57) trong đó: i T S = []Pi Pi+1 ωiti ti+1 ω = 1,ω = P − P / P − P : i = 1,2, , n −1 0 i i+1 i i i−1 2 Tại mỗi điểm kết nối Pi, điều kiện G được biểu diễn bởi: i 2 i−1 &r& (0) = (ωi ) &r& (1) Ta có thể suy ra được (n-1) phương trình tuyến tính dạng:
- C3 CAD-CAM>MHHCACTTHH 23 GVC NGUYỄN THẾ TRANH 2 2 2 {ωi-1ωi ti−1 + 2ωi (1+ωi )ti + ti+1} = 3{Pi+1 + (ωi −1)Pi −ωi Pi−1}(3.58) Giả thiết rằng biết trước t0 và tn, hệ phương trình trên có thể biểu diễn dưới dạng ma trận: ⎡ 1 0 0 0 . . . .⎤⎡ t0 ⎤ ⎡ t0 ⎤ 2 2 ⎢ω1 2ω1+2ω1 1 0 . . . .⎥⎢ t1 ⎥ ⎢ b1 ⎥ ⎢ 0 ω ω 2 2ω +2ω 2 1 . . . .⎥⎢ t ⎥ ⎢ b ⎥ 1 2 2 2 2 = 2 ⎢ . . . . . . . .⎥⎢ . ⎥ ⎢ . ⎥ ⎢ 2 2 ⎥⎢t ⎥ ⎢b ⎥ ⎢ . . . . . ωn−2ωn−1 2ωn−1+2ωn−1 1⎥⎢ n−1⎥ ⎢ n−1⎥ ⎣ . . . . . 0 0 1⎦⎣ tn ⎦ ⎣ tn ⎦ 2 2 Trong đó: bi = 3{Pi+1 + (ωi −1)Pi −ωi Pi−1} Phương trình trên có thể biến đổi thành phương trình bậc 3 (3.37) khi ωi = 1 hay một cách khác đường cong cát tuyến trở thành đường cong bậc 3 nếu như tất cả cát tuyến bằng nhau. 3. Dựng đường cong phức hợp B-spline không đều. Xét phương pháp dựng đường cong NUBS trơn láng đi qua chuỗi điểm 3 D. Trên hình (4.6) minh hoạ đường cong phức hợp tạo bởi n đoạn đường cong NUBS bậc 3 { ri(u) : i = 0,1, ,n-1} định nghĩa bởi: a. (n+3) đỉnh điều khiển, b. (n+4) bước nút. Ta có bài toán dựng hình: Cho trước: Chuỗi điểm 3D : {Pi : i = 0,1, ,n} Vectơ tiếp tuyến biên : t0, tn Hãy xác định: Bước nút : {∇i : i = -2, -1, ,n+1} Đỉnh điều khiển : {Vi : i = 0,1, ,n+2} Giải thuật bài toán tương tự như giải thuật dựng đường cong B-spline đều. Bước đầu tiên cần thực hiện là xác định bước nút ∇i. Có n giá trị bước nút hỗ trợ ∇0, ,∇n-1 (Hình 4.6) có thể được được lựa chọn bằng chiều dài cát tuyến tương ứng: ∇i = Pi+1 − Pi : i = 0, ,n-1 (3.59a) những giá trị còn lại được gọi là bước nút mở rộng, chúng không ảnh hưởng tới chất lượng của đường cong có thể đặt bằng 0 hoặc lấy giá trị như nhau: ∇-2 = ∇-1 = ∇n+1 = ∇n = 0 (3.59b) ∇-2 = ∇-1 = ∇0; ∇n+1 = ∇n = ∇n-1 (3.59c) Bước tiếp theo là thiết lập hệ phương trình tuyến tính cho các đỉnh điều khiển chưa biết. Ta thiết lập phương trình cho mỗi đoạn cong (Hình 4.6) theo dạng đường cong NURBS bậc 3:
- C3 CAD-CAM>MHHCACTTHH 24 GVC NGUYỄN THẾ TRANH i i i r (u) = UN c R 0 ≤ u ≤1; i=0,1, ,n-1 (3.60) i T trong đó: R = [Vi Vi+1 Vi+2 Vi+3] ⎡ (∇ )2 (∇ )2 ⎤ i 1− n − n i−1 0 ⎢∇ 2 ∇ 2 11 13 ∇3 ∇ 2 ⎥ ⎢ i−1 i−2 i−1 i−1 ⎥ 3∇ ∇ ⎢ − 3n (3n − n ) i i−1 0 ⎥ ⎢ 11 11 23 ∇3 ∇ 2 ⎥ N i = i−1 i−1 c ⎢ 2 ⎥ 3(∇i ) ⎢ 3n11 − (3n11 + n33 ) 3 2 0 ⎥ ⎢ ∇i−1∇i−1 ⎥ ⎢ (∇ )2 ⎥ − n (n − n − n ) n i ⎢ 11 11 43 44 43 3 2 ⎥ ⎣ ∇i ∇i ⎦ ⎧1 2 2 3 ⎫ n43 = −⎨ n33 + n44 + (∇i ) /(∇i ∇i−1 )⎬ ⎩3 ⎭ k nij : phần tử hàng thứ i, cột thứ j. ∇i = ∇i + ∇i+1 + + ∇i+k −1 2 2 3 2 2 3 Nếu đặt: hi = (1- fi - gi) ; fi = (∇i ) /(∇i−1∇i−2 ) ; gi = (∇i−1 ) /(∇i−1∇i−1 ) Qua các điều kiện ta có thể rút ra được hệ phương trình tuyến tính của đường cong NURBS như sau: ⎡− 3 3 0 0 ⎤⎡ V0 ⎤ ⎡ t0 ⎤ ⎢ 1 0 0 0 ⎥⎢ V ⎥ ⎢ P ⎥ ⎢ ⎥⎢ 1 ⎥ ⎢ 0 ⎥ ⎢ 0 f1 h1 g1 ⎥⎢ V2 ⎥ ⎢ P1 ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ . . . . . . . . . . ⎢ ⎥⎢ ⎥ = ⎢ ⎥ (3.61) ⎢ . . . . . . . . ⎥⎢ . ⎥ ⎢ . ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ . f h g V P ⎢ n−1 n−1 n−1 ⎥⎢ n ⎥ ⎢ n−1 ⎥ ⎢ . 0 0 1 ⎥⎢V ⎥ ⎢ P ⎥ ⎢ ⎥⎢ n+1 ⎥ ⎢ n ⎥ ⎣ . 0 − 3 3 ⎦⎣Vn+2 ⎦ ⎣ tn ⎦ 3.3. MÔ HÌNH MẶT LƯỚI Về hình học, nói chung mặt tạo hình của các loại hình thể có cấu trúc đa hợp hình thành bởi sự liên kết các mặt tạo hình cơ sở. Mỗi dạng mặt cơ sở được thiết lập theo qui luật riêng nhưng có cùng đặc điểm chung là có cấu trúc phức hợp từ các phần tử hình học dạng ô lưới mà ta gọi qui ước là mặt lưới.
- C3 CAD-CAM>MHHCACTTHH 25 GVC NGUYỄN THẾ TRANH 3.3.1. MÔ HÌNH MẶT LƯỚI ĐA THỨC THAM SỐ. Mô hình này được sử dụng chủ yếu trong mô hình hoá mặt cong phức hợp từ ma trận điểm, trong đó mô hình Ferguson, Bezier và B-spline được sử dụng phổ biến nhất. Một cách tổng quát có 5 dạng mô hình mặt lưới đa thức tham số bậc 3 sử dụng phổ biến trong mô hình hoá mặt cong từ dữ liệu điểm 3D tương ứng với các mô hình đường cong đã khảo sát: a. Đường cong đa thức chuẩn tắc : r(u) = U A b. Đường cong Ferguson : r(u) = U C S c. Đường cong Bezier : r(u) = U M R d. Đường cong B-spline : r(u) = U N R e. Đường cong B-spline không đều: r(u) = U Nc R 1. Mô hình mặt lưới đa thức chuẩn tắc. Mặt lưới đa thức chuẩn tắc bậc 3 kép được định nghĩa như sau: 3 3 i j r(u,v) = ∑∑diju v ; với 0 ≤ u,v ≤ 1 (3.62a) ij==0 0 hay dưới dạng ma trận: r(u,v) = U D VT (3.62b) trong đó: r(u,v) là đa thức vectơ bậc 3 trên miền tham số (u,v). U = [1 u u2 u3 ]; V = [1 v v2 v3 ] ⎡d00 d01 d02 d02 ⎤ ⎢d d d d ⎥ D = ⎢ 10 11 12 13 ⎥ : Ma trận hệ số đa thức. ⎢d 20 d 21 d 22 d 23 ⎥ ⎢ ⎥ ⎣d30 d31 d32 d33 ⎦ Ví dụ ta có thể sử dụng mô hình này để thiết lập mặt cong trơn láng nội suy qua (4x4) dãy điểm 3D {Pij ; i =0, ,3; j = 0, ,3} (Hình 3.11): Đặt giá trị tham số tại các P03 P điểm góc lưới: 13 P02 P12 P23 P00 : u = v = 0 P01 P22 P11 P03 : u = 0 , v = 1 P33 P21 P30 : u = 1 , v = 0 v P33 : u = 1 , v = 1 P00 P32 P10 u P Gía trị tham số tại các điểm 20 P31 khác lấy theo chiều dài cát P30 tuyến: Hình 3.11 - Mặt lưới đa thức chuẩn tắc bậc 3 kép
- C3 CAD-CAM>MHHCACTTHH 26 GVC NGUYỄN THẾ TRANH Ví dụ tại điểm P 11: u = P11 − P01 /{P11 − P01 + P21 − P11 P31 − P21 } Ta có thể tăng bậc của mặt lưới đến giá trị (mxn) sao cho mặt lưới nội suy qua (m+1) x (n+1) điểm. Mô hình này nói chung khó duy trì tính liên tục trên các đường biên khi mặt lưới có dạng phức tạp và mặt lưới có xu hướng dao động khi bậc của đa thức tăng. 2. Mô hình mặt lưới Ferguson. Ta có thể sử dụng mặt lưới trên một cách tiện dụng hơn bằng cách thiết lập mặt lưới nội suy qua 4 điểm góc {Pij : i, j = 0,1} (Hình 3.12). Trong biểu thức (3.62) có 16 hệ số chưa biết nên cần xác định 16 hệ thức ràng buộc. Điều kiện ràng buộc liên quan đến các điểm góc bao gồm: r(i,j) = Pij : i,j = 0,1 (3.63) t01 P01 x Điều kiện biên tại 4 điểm góc lưới 01 P : s01 ij -Vectơ tiếp tuyến theo phương u: u=0 s = ∂r(u,v)/ ∂u = r (i, j) ij u t00 P11 t11 -Vectơ tiếp tuyến theo phương v: v x00 s00 x11 P00 tij = ∂r(u,v)/ ∂v = rv (i, j) u=1 s11 - Vectơ xoắn tại Pij: u t10 2 xij = ∂ r(u,v)/ ∂u∂v = ruv (i, j) P10 x10 (3.64) s10 Hình 3.12 - Mặt lưới Ferguson Bằng cách giải 16 phương trình (3.63) và (3.64) ta xác định được các hệ số dij. Có thể biến đổi phương trình (3.62) thành phương trình Ferguson: r(u,v) = U D VT = U C Q CT VT , 0 ≤ u,v ≤ 1 (3.65) trong đó: C: Ma trận hệ số Ferguson. ⎡P00 P01 t00 t01 ⎤ ⎢P P t t ⎥ Q = ⎢ 10 11 10 11 ⎥ : Ma trận điều kiện góc. ⎢s00 s01 x00 x01 ⎥ ⎢ ⎥ ⎣s10 s11 x10 x11 ⎦ Ta cũng thấy rằng phương trình đường cong Ferguson thực ra là hàm kết nối điều kiện biên bởi hàm Hermite bậc 3 và do vậy ta có thể thiết lập mặt cong r(u,v) như là hàm kết nối đường biên và tiếp tuyến biên ngang bởi hàm Hermite bậc 3 như sau: 3 3 3 3 r(u,v) = H 0 (u)r(0,v) + H1 (u)ru (0,v) + H 2 (u)ru (1,v) + H 3 (u)r(1,v)
- C3 CAD-CAM>MHHCACTTHH 27 GVC NGUYỄN THẾ TRANH Kết quả nhận được là phương trình mặt cong Ferguson (3.65) và cũng đạt được kết quả tương tự nếu bắt đầu với các đường biên v = 0,1. Mặt khác nếu mặt cong được xác định hoàn toán bởi điều kiện góc (P, s, t, x) thì được gọi là mặt cong tích tenxơ. Mặt cong tích Tenxơ có cấu hình chữ nhật đối xứng (theo u và v) và có tính chất quan trong nêu trên. 3. Mô hình mặt lưới Bezier. Hãy xét dãy (4x4) đỉnh điều khiển {Vij} (Hình 3.13). Bằng cách kết nối các đỉnh điều khiển bởi đa thức Bernstein mặt lưới Bezier bậc 3 kép được định nghĩa như sau: 3 3 3 3 r(u,v) = ∑∑Bi (u)B j (v)Vij ij==0 0 3 3 3! i 3−i 3! j 3− j = ∑∑ u (1− u) v (1− v) Vij ij==0 0 (3 − i)!i! (3 − j)! j! = U M B MT VT (3.66) trong đó: ⎡V00 V01 V02 V02 ⎤ ⎢V V V V ⎥ B = ⎢ 10 11 12 13 ⎥ : Ma trận đỉnh điều khiển Bezier ⎢V20 V21 V22 V23 ⎥ ⎢ ⎥ ⎣V30 V31 V32 V33 ⎦ V03 V13 V02 V u=0 V12 23 V Ma trận hệ số Bezier bậc 3 01 V11 V22 M và ma trận đỉnh điều V33 v khiển Bezier B tạo thành V21 v=0 V khối đa diện đặc tính. V00 32 V10 u V20 V31 V30 Hình 3.13 - Mặt lưới Bezierbậc 3 kép Có thể phát triển mô hình mặt lưới Bezier bậc 3 kép tới bậc (m x n): m n m n r(u,v) = ∑∑Bi (u)B j (v)Vij (3.67) i==00j m n m! i m−i n! j n− j = ∑∑ u (1− u) v (1− v) Vij i==00j (m − i)!i! (n − j)! j! Một số phần mềm CAD/CAM chuyên nghiệp sử dụng giá trị m = n = 5 hoặc m = n = 7. Khi m = n = 5 ta cần 36 đỉnh điều khiển để thiết lập mô hình mặt lưới Bezier bậc 5 kép.
- C3 CAD-CAM>MHHCACTTHH 28 GVC NGUYỄN THẾ TRANH 4. Mô hình mặt lưới B-spline đều. Tương tự như mặt lưới Bezier bậc 3 kép, mặt lưới B-spline đều bậc 3 kép được định nghĩa là mặt cong tích Tenxơ các đường cong B-spline đều: 3 3 3 3 r(u,v) = ∑∑Ni (u)N j (v)Vij ij==0 0 = U N B NT VT (3.68) V03 V13 V02 V12 V23 V V 22 Ta cũng có thể lập mặt lưới 01 V11 v B-spline đều với thứ bậc V33 khác nhau theo phương u và u V00 V32 v riêng biệt. V21 V10 V20 V31 V30 Hình 3.14 - Mặt lưới B-spline đều bậc 3 kép 3.3.2. MÔ HÌNH MẶT LƯỚI NỘI SUY BIÊN Dạng mặt lưới này sử dụng tương đối phổ biến do phương thức tạo hình đơn giản. Ở đây ta khảo sát các dạng mặt lưới cơ bản như: Mặt kẻ, mặt tuyến hình, mặt Coons và mặt Gregory. 1. Mặt kẻ. Xét 2 đường cong tham số r0(u) và r1(u) với 0 ≤ u ≤ 1 (Hình 3.15). Kết nối tuyến tính 2 đường cong này tạo nên một dạng mặt cong được gọi là mặt kẻ: r(u,v) = (1-v)r0(u) + vr1(u) : 0 ≤ u,v ≤ 1 (3.69) hay r(u,v) = r0(u) + v(r1(u) - r0(u)) : 0 ≤ u,v ≤ 1 Đây là dạng mặt cong đơn giản nhất được định nghĩa từ các đường biên. Số hạng thứ 2 trong (3.69) là hàm vectơ theo u. Vectơ đơn vị theo phương r1(u) - r0(u) trong (3.69) được gọi là vectơ kẻ t(u). Ta có thể biểu diễn phương trình mặt cong tương tự như mặt kẻ (3.69) bằng cách sử dụng vectơ kẻ t0(u) của đường biên r0(u): r(u,v) = r0(u) + vt0(u) (3.70) Nếu vectơ kẻ t0(u) không đổi và đường biên là đường cong 2D thì mặt cong trở thành mặt trụ. Nếu vectơ kẻ t0(u) là vectơ tiếp tuyến ngang của đường biên, phương trình mặt cong là phép nội suy tuyến tính Taylor.
- C3 CAD-CAM>MHHCACTTHH 29 GVC NGUYỄN THẾ TRANH r1(u) r1(u) v v r(u,v) u u t0(u) r0(u) r0(u) a, b, Hình 3.15 - a, Mặt kẻ; b, Phép nội suy tuyến tính Taylor 2. Mặt tuyến hình. Xét một trường hợp mở rộng của mô hình mặt kẻ (3.69) khi dữ liệu cho trước bao gồm: a. Cặp đường biên ri(u) : i = 0, 1 b. Vectơ tiếp tuyến biên ngang ti(u) : i = 0, 1 Trường hợp này giống hệt như trường hợp đường cong Ferguson với khác biệt là hàm vectơ được sử dụng thay cho vectơ. Từ phương trình đường cong Ferguson đã biết, mặt tuyến hình được định nghĩa bởi phép kết nối dữ liệu theo hàm Hermite bậc 3 3 H i (v) : 3 3 3 3 r(u,v) = H 0 (v)r0 (u) + H1 (v)t0 (u) + H 2 (v)t1 (u)H 3 (v)r1 (u) (3.71) trong đó: 3 2 3 3 2 3 H 0 (v) = (1− 3v + 2v ) ; H1 (v) = (v − 2v + v ) 3 2 3 3 2 3 H 2 (v) = (−v + v ); H 3 (v) = (3v − 2v ) ri(u) : đường biên (i = 0, 1) ti(u) : tiếp tuyến biên ngang (i = 0, 1) 3. Mặt lưới Coons chữ nhật. Thiết lập mặt cong r(u,v) nội suy từ các đường biên (Hình 3.16): a0(v) ; a1(v) ; b0(u) ; b1(u) : 0 ≤ u,v ≤ 1 Như vậy mặt cong này phải thoả điều kiện biên sau: r(i,v) = ai(v) : i = 0,1 r(u,j) = bj(u) : j = 0,1 (3.72) Pij = r(i,j) : i,j = 0,1 Cho r1(u,v) và r2(u,v) là các mặt kẻ thoả điều kiện biên trên: r1(u,v) = (1-u)a0(v) + ua1(v) r2(u,v) = (1-v)b0(u) + vb1(u) (3.73) Phương trình mặt cong r(u,v) thoả điều kiện nbiên (3.72) được định nghĩa như sau: r(u,v) = r1(u,v) + r2(u,v) - r3(u,v) (3.74) Phương trình này có dạng cọng Lôgic (theo Boole), nếu r3 là hàm giao của r1 và r2.
- C3 CAD-CAM>MHHCACTTHH 30 GVC NGUYỄN THẾ TRANH P b1(u) 01 a0(v) P11 r1(u,v) a1(v) a0(v) a1(v) b1(u) v P00 b0(u) P10 u r1(u,v) a, b, Hình 3.16 - Mặt Coons b0(u) Để xác định mặt cong hiệu chỉnh r3(u,v) cần xác định phương trình mặt cong (3.74) tại các đường biên. Từ các điều kiện biên ta có giá trị mặt cong tại các đường biên u = 0,1 được xác định như sau: r3(0,v) = (1-v)b0(0) +vb1(0) = (1-v)P00 + vP01 r3(1,v) = (1-v)b0(1) +vb1(1) = (1-v)P10 + vP11 (3.75) Có thể coi mặt cong hiệu chỉnh r3(u,v) là mặt kẻ xác định bởi 2 đường biên: r3(u,v) = (1-u)r3(0,v) + ur3(1,v) = (1-u)(1-v)P00 + (1-u)vP01 + u(1-v)P10 + uvP11 (3.76) Ta thấy rằng mặt cong hiệu chỉnh được định nghĩa như phép kết nối tuyến tính kép 4 điểm góc. Từ các kết quả trên ta có thể suy ra phương trình mặt cong nội suy từ 4 đường biên như sau: ⎡a0 (v)⎤ ⎡α 0 (v)⎤ r(u,v) = [α0(u)α1(u)] ⎢ ⎥ + [b0(u)b1(u)] ⎢ ⎥ ⎣a1 (v)⎦ ⎣α1 (v)⎦ ⎡P00 P01 ⎤ ⎡α 0 (v)⎤ - [α0(u)α1(u)] ⎢ ⎥ ⎢ ⎥ với 0 ≤ u,v ≤ 1 (3.77) ⎣P10 P11 ⎦ ⎣α1 (v)⎦ trong đó: α0(u) = (1-u) ; α1(u) = u α0(v) = (1-v) ; α1(u) = v Phương trình mặt cong (3.77) được gọi là mặt Coons kết nối tiếp tuyến kép. 4. Mặt lưới Gregory tam giác. Ta khảo sát vấn đề thiết lập mặt lưới tam giác từ 3 đường biên ei(si) và tiếp tuyến biên ngang ti(si) (Hình 3.17) bằng cách áp dụng phép nội suy (5.71) cho từng đường biên. Xét ví dụ xác định phương trình tham số đường biên và tiếp tuyến biên ngang của mặt cong cho trước là 1/8 mặt cầu đơn vị (Hình 3.17).
- C3 CAD-CAM>MHHCACTTHH 31 GVC NGUYỄN THẾ TRANH Có thể tham số hoá cung tròn trên mặt z phẳng x-y như sau: x = cosθ ; y = sinθ Từ đó phương trình các đường biên có e2(s2) e1(s1) dạng: t1(s1) e1(s1)=(0,cos(s1π/2),sin(s1π/2)): 0≤s1≤1 y x e2(s2)=( sin(s2π/2),0,cos(s2π/2)): 0≤s ≤1 2 e3(s3) e3(s3)=( cos(s1π/2),sin(s1π/2),0): 0≤s3≤1 Hình 3.17- Dữ liệu biên của mặt cong tam giác Vì rằng tiếp tuyến biên ngang song song với trục toạ độ nên ta có thể biểu diễn chúng như sau: t1 = (π/2, 0, 0); t2 = (0, π/2, 0); t3 = (0, 0, π/2) Để thiết lập mặt cong trơn láng từ dữ liệu biên (Hình 3.17) cần xác định giới hạn tham số cho miền tam giác. Xét tam giác đều V1V2V3, đặt λi là khoảng cách vuông góc từ điểm V trong tam giác đến cạnh đối diện đỉnh Vi (Hình 3.18a): V = (λ1, λ2, λ3) P1=e2(1)=e3(0) V1(1,0,0) e3(s3) e2(s2) t (s ) t2(s2) 3 3 λ λ3 2 V t1(s1) λ1 e1(s1) P2=e3(1)=e1(0) P3=e1(1)=e2(0) V2(0,1,0) V3(0,0,1) a, b, Hình 3.18 - Mặt cong Gregory tam giác Như vậy λi tạo nên toạ độ trọng tâm của miền tam giác. Ta có thể xác định tham số si của đường biên theo λi: s1=λ3(λ2+λ3); s2=λ1(λ3+λ1); s3=λ2(λ1+λ2) (5.18) Từ đó có thể xác định hàm nội suy tuyến tính Taylor ri(si, λi) theo đường biên ei(si) và tiếp tuyến biên ngang ti(si): ri(si, λi) = ei(si) + λiti(si) i = 1, 2, 3 (3.79) Cuối cùng mặt lưới Gregory tam giác giới hạn bởi 3 đường biên (Hình 3.18b) được thiết lập như phép kết nối lồi 3 mặt cong nội suy tuyến tính Taylor: 3 r(V ) = ∑γ i (V ){ei (si ) + λiti (si )} (3.80) i=1 trong đó: V(λ1, λ2, λ3) : Toạ độ trọng tâm
- C3 CAD-CAM>MHHCACTTHH 32 GVC NGUYỄN THẾ TRANH si : tham số đường cong 2 2 ⎧(1/ λi ) / ∑ j (1/ λ j ) khiλ j ≠ 0 và γ i (V ) = ⎨ 1 khiλ = 0 ⎩ j Giải thuật thiết lập mặt cong theo (3.80) được gọi là phép kết nối lồi vì mặt cong kết quả nội suy từ miền lồi giới hạn bởi 3 đường biên. Ta có thể mở rộng phương pháp này để thiết lập mặt cong giới hạn mởi n đường biên; ngoài ra cũng có thể thiết lập mặt cong n cạnh theo giải thuật mặt Coons. Giải thuật này còn được gọi là phép cong Lôgic. Theo đó mặt lưới kết quả được biểu diễn như tổng Lôgic của các mặt cong thành phần: r(u,v) = r1(u,v) ⊕ r2(u,v) = r1(u,v) + r2(u,v) - r3(u,v) trong đó r3(u,v) là phần giao của r1(u,v) và r2(u,v). 3.3.3. MÔ HÌNH MẶT LƯỚI QUÉT HÌNH Mặt quét hình được định nghĩa bởi quĩ đạo quét hình đường mặt cắt (đường tạo hình) dọc theo đường định hình (đường dẫn hướng). Ta có các loại mặt lưới quét hình sau: 1. Mặt lưới quét hình song song. Xét đường cong tham số g(u) và d(v) (Hình 3.19). Nếu coi 2 đường cong 3D này là sợi dây cứng ta có thể tưởng tượng mặt cong quét hình song song như mặt cong xác định bởi quĩ đạo quét hình đường mặt cắt g(u) dọc đường dẫn d(v): r(u,v) = g(u) + d(v) - d(0) : 0 ≤ u,v ≤ 1 (3.81) trong đó: d(0) là điểm đầu của đường cong dẫn hướng. Có thể mở rộng ý tưởng quét hình cho trường hợp đường cong tham số định nghĩa bởi đỉnh điều khiển Bezier và B-spline. Đối với trường hợp Bezier bậc 3 có thể di d(v) chuyển các đỉnh điều khiển V0, V1, V2, V3 dọc theo 4 đường dẫn hướng d(0) d0(v), d1(v), d2(v), d3(v). Như vậy mặt g(u) cong kết quả được biểu diễn như sau: Hình 3.19- Mặt quét hình song song 3 3 r(u,v) = U M R(v) = ∑ Bi (u)di (v) (3.82) i=0 Khi đường mặt cắt là đường cong cônic và đường dẫn hướng là đường bậc 3 thì mặt cong quét hình được gọi là mặt cong đa cônic, được sử dụng để thiết lập mặt cong kết nối biên.
- C3 CAD-CAM>MHHCACTTHH 33 GVC NGUYỄN THẾ TRANH 2. Mặt lưới quét hình tròn xoay. Đây là dạng mặt cong được sử dụng tương đối phổ biến. Xét đường mặt cắt s(u) trên mặt phẳng x-z (Hình 3.20a): s(u) = d(u)i - z(u)k = (d(u), 0, z(u)) (3.83) trong đó: i = (1, 0, 0) và k = (0, 0, 1). Phương trình tham số mặt cong quét hình được định nghĩa bởi phép xoay tròn đường mặt cắt (3.83) quanh trục z (Hình 3.20b) có dạng như sau: z x k r(u,θ) = (d(u)cosθ, d(u)sinθ, z(u)) = d(u)cosθ.i + d(u)sinθ.j + z(u).k s(u) (3.84) s(u) j y trong đó: d(u), z(u) là đường mặt cắt (3.83). z i x a, b, Hình 3.20 - Mặt quét hình tròn xoay 3. Mặt quét hình phi tham số. Ta đã biết rằng mặt cong tham số r(u,v) suy biến thành mặt cong phi tham số khi x(u,v) ≡ u và y(u,v) ≡ v: r(u,v) = {x(u,v), y(u,v), z(u,v)} ≡ {u,v,z(u,v)} ≡ (x,y,z(x,y)) (3.85) Thực tế phương trình này tương đương với z = z(x,y). Xét trường hợp mặt cong quét hình song song z = z(x,y) (Hình 3.21c) được tạo bởi đường mặt cắt z = g(x) và đường dẫn hướng z = d(y) (Hình 3.21a,b): z = g(x), x ∈ [x0, x1] z = d(y), y ∈ [y , y ] 0 1 z z = d(y) z = g(x) z z z = g(x) z = d(y) y x y x a, b, c, Hình 3.21 - Mặt cong quét hình phi tham số Theo định nghĩa mặt cong quét hình song song (3.81) mặt cong quét hình tham số được xác định như sau: z(x,y) = g(x) + d(y) - d(0) với x0 ≤ x ≤ x1; y0 ≤ y ≤ y1 (3.86) Có thể trình bày lại phương trình (3.86) dưới dạng chuẩn:
- C3 CAD-CAM>MHHCACTTHH 34 GVC NGUYỄN THẾ TRANH f(x,y,z) ≡ -g(x) - d(y) + z +d(0) = 0 Từ đó có thể xác định vectơ pháp tuyến N của mặt cong quét hình (3.86) như sau: N(x, y) = (∂f / ∂x,∂f / ∂y,∂f / ∂z) = (−g&(x),−d&(y),1) (3.87) 3.3.4. MẶT LƯỚI GIẢI TÍCH. Thuật ngữ mặt cong giải tích được sử dụng cho trường hợp mặt cong biểu diễn dưới dạng phương trình ẩn g(x,y,z) = 0, trong đó hàm giải tích g(x,y,z) thường là đa thức với biến toạ độ x, y, z. Nếu bậc đa thức là 2, mặt cong được gọi là mặt conicoit. Nếu là bậc 3 mặt cong được gọi là mặt cubicoit. Thực tế chỉ có mặt cong bậc 2 được sử dụng phổ biến để thể hiện các loại hình thể. 1. Mặt cong bậc 2. Trong trường hợp tổng quát, phương trình đa thức ẩn bậc 2 biểu diễn mặt cong bậc 2 trong không gian 3D: 2 2 2 i j k g(x, y, z) = ∑∑∑cij x y z = 0 (3.88) ijk===0 0 0 Phương trình (3.88) gồm 27 số hạng, nên mô hình giải tích này không có nghĩa hình học. Thực tế mặt cong bậc 2 chuẩn tác (Hình 3.22) được sử dụng như mặt cong tạo hình cơ sở trong các phép dựng hình (Bảng 3.1). Hình 3.22 - 6 dạng mặt cong bậc 2 chuẩn tắc
- C3 CAD-CAM>MHHCACTTHH 35 GVC NGUYỄN THẾ TRANH Bảng 3.1 STT Mặt cong bậc 2 chuẩn tắc Phương trình ẩn 1 Elipsoit (mặt cầu) (x/a)2 + (y/b)2 + (z/c)2 = 1 2 Hyperboloid đơn (x/a)2 + (y/b)2 - (z/c)2 = 1 3 Hyperboloid kép (x/a)2 - (y/b)2 - (z/c)2 = 1 4 Paraboloiđ Elip (x/a)2 + (y/b)2 - z = 0 5 Paraboloidd Hyperbol (x/a)2 - (y/b)2 + z = 0 6 Nón Elip (x/a)2 + (y/b)2 + z = 0 Dễ dàng xác định ý nghĩa hình học của “hằng số tỷ lệ” a, b, c bằng phương pháp thay thế. Ví dụ đặt y = z = 0 để thấy ảnh hưởng của hệ số a. 2. Tham số hoá mặt cong bậc 2. Theo hình học vi phân phương trình ẩn nêu trên không phải là phương trình mặt cong, đơn thuần chúng biểu diễn giới hạn giữa 2 nửa không gian không kết nối đựơc. Phần lớn các chức năng xử lý CAD/CAM yêu cầu mô tả mặt cong dưới dạng phương trình tham số. Bảng (3.2) tóm tắt phương trình tham số của các dạng mặt cong bậc 2 chuẩn tắc biểu diễn dưới dạng tổng quát: r(u,v) = (x(u,v), y(u,v), z(u,v)) Bảng 3.2 STT Mặt cong bậc 2 chuẩn tắc Phương trình tham số 1 Elipsoit (mặt cầu) r(α,β) = (acosαcosβ, bcosαsinβ, csinα) 2 Hyperboloid đơn r(α,β) = (acosβ/ cosα, bsinβ/ cosα, ctgα) 3 Hyperboloid kép r(α,β) = (a/ cosα, bcosβtgα, ctgαsinβ) 4 Paraboloiđ Elip r(u,v) = (au, bv, u2 + v2) 5 Paraboloidd Hyperbol r(u,v) = (au, bv, u2 - v2) 6 Nón Elip r(u,v) = (aucosβ, bvsinβ, cu) trong đó: -π/2 ≤ α ≤ π/2; -π/2 ≤ β ≤ π/2; u,v là số thực Phương pháp tham số hoá tốt nhất là cho độ chảy đều. Có thể dễ dàng chuyển đổi các biểu thức lượng giác trên bảng (3.2) thành dạng tham số hữu tỷ với giả thiết hệ số tỷ lệ bằng 1. (Bảng 3.3): Bảng 3.3 STT Mặt cong bậc 2 chuẩn tắc Phương trình tham số hữu tỷ thuần nhất 1 Elipsoit (mặt cầu) ((1-u2)(1-v2),2u(1-v2),2v(1+u2),(1+u2)(1+v2)) 2 Hyperboloid đơn ((1-u2)(4+v2),2u(1+v2),4v(1+u2),(1+u2)(4-v2)) 3 Hyperboloid kép ((4+u2)(4+v2),4u(4+v2),4v(4-u2),(4-u2)(4-v2)) 4 Paraboloiđ Elip (u, v, u2 + v2, 1) 5 Paraboloidd Hyperbol (u, v, u2 - v2, 1) 6 Nón Elip (v(1-u2), 2uv, v(1+u2), (1+u2))
- C3 CAD-CAM>MHHCACTTHH 36 GVC NGUYỄN THẾ TRANH KẾT LUẬN Chúng ta đã đề cập đến 4 dạng mô hình mặt lưới và đã sử dụng các dạng hàm kết nối bậc 3 để thiết lập mặt lưới nội suy chữ nhật. Thông thường mô hình mặt lưới dưới dạng ma trận rất thích hợp cho xử lý dữ liệu. Tuy nhiên đối với hình học Bezier, ta thấy rằng dạng ma trận ít ổn định về số so với dạng đa thức Bernstein. Trong số mô hình mặt lưới chữ nhật (vô tỷ) được nêu, mô hình NURBS là dạng tổng quát nhất, các dạng khác chỉ là trường hợp đặc biệt. Trong đó mô hình Bezier thích hợp nhất vì có thể chuyển đổi các dạng khác sang dạng Bezier. Mặt quét hìnhlà dạng mô hình hình học được sử dụng phổ biến nhất trong kỹ thuật. Ví dụ như có thể mô tả mặt tạo hình các loại ống dẫn, vỏ tàu, cánh quạt và các chi tiết khuôn mẫu bởi phương pháp quét hình. Mặt quét hình được định nghĩa như phép chuyển đổi toạ độ. Đây chính là lý do chính để phương pháp tạo hình này được sử dụng rất phổ biến nhất trong các hệ thống CAD/CAM.