Bài giảng Đồ họa máy tính: Đường cong và bề mặt

Các đường cong tham số rất linh hoạt. Chúng không cần phải là hàm –Đường cong có thể có nhiều giá trị ứng với một tọa độ x. Số lượng tham số thường cho thấy chiều của vật thể (x(u,v), y(u,v), z(u,v))

pdf26 trang | Chia sẻ: haohao89 | Lượt xem: 3908 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Đồ họa máy tính: Đường cong và bề mặt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
12/10/2007Bùi Thế Duy - Bộ môn KHMT 1 Đồ họa máy tính Đường cong và bề mặt I 12/10/2007Bùi Thế Duy - Bộ môn KHMT 2 Các loại đường cong Đường thẳng Đường tròn z Chính tắc: y = mx + b r = Arx + Bry + Cr z Tổng quát: Ax + By + C = 0 (x – x0)2 + (y – y0)2 – r2 = 0 z Tham số: x = x0 + (x1 – x0)t x = x0 + rcosθ y = y0 + (y1 – y0)t y = y0 + rsinθ 12/10/2007Bùi Thế Duy - Bộ môn KHMT 3 Tại sao lại dùng tham số? z Các đường cong tham số rất linh hoạt. z Chúng không cần phải là hàm – Đường cong có thể có nhiều giá trị ứng với một tọa độ x. z Số lượng tham số thường cho thấy chiều của vật thể (x(u,v), y(u,v), z(u,v)) 12/10/2007Bùi Thế Duy - Bộ môn KHMT 4 Mô tả một đường cong z Điểm điều khiển: – Là tập các điểm ảnh hưởng đến hình dạng của đường cong. z Knots: – Các điểm nằm trên đường cong. z Đường cong nội suy (Interpolating spline): – Các đoạn cong đi qua điểm điều khiển. z Đường cong xấp xỉ (Approximating spline): – Các điểm điều khiển ảnh hưởng đến hình dáng của đoạn 12/10/2007Bùi Thế Duy - Bộ môn KHMT 5 Các đoạn cong Chúng ta có thể biểu diễn một đường cong với độ dài bất kỳ bằng một chuỗi các đoạn cong nối với nhau. Chúng ta quan tâm đến các đoạn này nối với nhau như thế nào … 12/10/2007Bùi Thế Duy - Bộ môn KHMT 6 Đường cong tham số bậc 3 (Parametric Cubic Curves) z Để đảm bảo tính liên tục C2 các hàm của chúng ta phải có bậc ít nhất là 3. z Đường cong cubic có 4 bậc tự do và thay đổi 4 thứ. z Sử dụng thức: x(t) có bậc n là một hàm của t. - y(t) và z(t) cũng tương tự và được xử lý độc lập. z Có nghĩa là: i n i i xatx ∑ = = 0 )( 12/10/2007Bùi Thế Duy - Bộ môn KHMT 7 Một ví dụ z Toàn bộ các vấn đế liên quan đến đường cong tham số chính là xác định các hệ số của nó. z Để làm được điều đó, chúng ta xác định các giá trị để thỏa mãn các điều kiện của các knots và các điều kiện liên tục. z Ví dụ: Cubic Hermite Splines 12/10/2007Bùi Thế Duy - Bộ môn KHMT 8 Đường cong Hermite z 4 bậc tự do, 2 để điều khiển tính liên tục C0 và C1 tại mỗi đầu. z Sử dụng đa thức để biểu diễn đường cong. z Xác định: x = X(t) theo các giá trị x0, x0/, x1, x1/ Bây giờ: X(t) = a3t3 + a2t2 + a1t + a0 và X/(t) = 3a3t2 + 2a2t + a1 12/10/2007Bùi Thế Duy - Bộ môn KHMT 9 Tìm các hệ số Hermite Thay t vào hai đầu: x0 = X(0) = a0 x0/ = X/(0) = a1 x1 = X(1) = a3 + a2 + a1 + a0 x1/ = X/(1) = 3a3 + 2a2+ a1 Và lời giải là: a0 = x0 a1 = x0/ a2 = -3x0 – 2x0/ + 3x1 – x1/ a3 = 2x0 + x0/ - 2x1 + x1/ 12/10/2007Bùi Thế Duy - Bộ môn KHMT 10 Ma trận Hermite: MH Đa thức kết quả có thể được biểu diễn qua dạng ma trận: X(t) = tTMHq ( q là véc-tơ điều khiển) [ ] ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −−− − = / 1 1 / 0 0 23 0001 0010 1323 1212 1)( x x x x ttttX Bây giờ chúng ta có thể định nghĩa đa giác tham số cho các tọa độ một cách độc lập X(t), Y(t) và Z(t) 12/10/2007Bùi Thế Duy - Bộ môn KHMT 11 Các hàm Hermite cơ bản x0 x1 x0/ x1/ Đồ thị cho thấy hình dạng của bốn hàm cơ bản (hay còn gọi là blending functions). Chúng được gán nhãn với thành phần trọng số của nó. 12/10/2007Bùi Thế Duy - Bộ môn KHMT 12 Họ các đường cong Hermite y(t) x(t) 12/10/2007Bùi Thế Duy - Bộ môn KHMT 13 Hiển thị các đường cong Hermite z Đơn giản : – Lặp qua t – chọn đơn vị lặp phù hợp. – Tính giá trị x. – Và y & z một cách độc lập. – Vẽ các đoạn nối liền các điểm. z Nối các đoạn: – Các điểm đầu mút trùng nhau để có liên tục C0 – Véc tơ pháp tuyến trùng nhau để có liên tục C1 . 12/10/2007Bùi Thế Duy - Bộ môn KHMT 14 Đường cong Bézier z Đường cong Hermite khó để mô hình hóa – cần phải xác định các điểm và véc-tơ pháp tuyến. z Sẽ dễ dàng hơn khi chỉ cần chỉ ra điểm. z Pierre Bézier xác định 2 điểm đầu mút và 2 điểm điều khiển để xác định véc-tơ pháp tuyến. z Có thể tính ra từ ma trận Hermite: – Hai điểm điều khiển xác định vec-tơ pháp tuyến 12/10/2007Bùi Thế Duy - Bộ môn KHMT 15 Đường cong Bézier P4 P2 P1 P1 P4 P3 P3 P2 12/10/2007Bùi Thế Duy - Bộ môn KHMT 16 Ma trận Bézier Trước hết chúng ta phải xác định các hàm cơ bản. Cho một đa thức bậc n, chúng ta có n điểm điều khiển với các thành phần cho đến tn-1 như sau: fr là hàm cơ bản Hệ số của tr theo khải triển của (t+(1-t))n-1 r n r rqftX ∑− = = 1 0 )( )!1(! )!1()1( 111 1 −− −=−= −−−−−− rnr nCwherettCf r nrnr rn n r 12/10/2007Bùi Thế Duy - Bộ môn KHMT 17 Ma trận Bézier z X(t) = tTMBq (MB là ma trận Bézier) z Với n=4 và r=0,1,2,3 ta có: z Tương tự với Y(t) và Z(t) [ ] ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − − −− = 3 2 1 0 23 0001 0033 0363 1331 1)( q q q q ttttX 12/10/2007Bùi Thế Duy - Bộ môn KHMT 18 Hàm cơ bản Bézier q0 q3 q1 q2 12/10/2007Bùi Thế Duy - Bộ môn KHMT 19 Ví dụ về các đường cong nội suy Đường cong Catmull-Rom nội suy qua các điểm điều khiển. Véctơ pháp tuyến phải trùng tại các điểm điều khiển. ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⋅ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − −− −− ⋅⋅= ⋅⋅= − − − i i i i BCR i P P P P T GMTtP 1 2 3 0020 0101 1452 1331 2 1 )( 12/10/2007Bùi Thế Duy - Bộ môn KHMT 20 Các đường cong B-Splines z Các đường cong Cubic Bézier được ghép với nhau cũng giống như các đường cong Hermite thông qua việc đảm bảo độ liên tục C0 và C1. z Các đường cong B-Splines có thể có số điểm điều khiển tùy ý với độ dài bất kỳ và có tính liên tục C0, C1 và C2. 12/10/2007Bùi Thế Duy - Bộ môn KHMT 21 Đoạn B-Spline trông như thế nào t0 t1 t2 t3 t4 1 12/10/2007Bùi Thế Duy - Bộ môn KHMT 22 Hàm B-Spline cơ bản t1 1/6 4/6 f(t) 12/10/2007Bùi Thế Duy - Bộ môn KHMT 23 Các đường cong B-Spline Knot. Control point. m = 9 (P0 ..P9) m-1 knots m+1 control points m-2 curve segments 12/10/2007Bùi Thế Duy - Bộ môn KHMT 24 Các đường cong B-Spline Knot. Control point.P1 P2 P3 P0 Q3 12/10/2007Bùi Thế Duy - Bộ môn KHMT 25 Các đường cong B-Spline Knot. Control point. Q4 P1 P3 P4 P2 12/10/2007Bùi Thế Duy - Bộ môn KHMT 26 Tổng kết z Các đường cong bậc 3 z Các đường cong B-splines