#include<iostream.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int gr_driver = DETECT,gr_mode;
initgraph(&gr_driver,&gr_mode,"../bgi");
setcolor(1);
arc(250,250,0,180,50);
setcolor(2);
arc(240,240,0,180,50);
setcolor(3);
arc(230,230,0,180,50);
setcolor(4);
arc(220,220,0,180,50);
setcolor(5);
arc(210,210,0,180,50);
setcolor(6);
arc(200,200,0,180,50);
setcolor(7);
arc(260,260,0,180,50);
setcolor(8);
arc(270,270,0,180,50);
setcolor(9);
arc(280,280,0,180,50);
setcolor(10);
arc(290,290,0,180,50);
//
setcolor(1);
arc(350,250,180,0,50);
setcolor(2);
arc(340,240,180,0,50);
setcolor(3);
arc(330,230,180,0,50);
setcolor(4);
arc(320,220,180,0,50);
setcolor(5);
arc(310,210,180,0,50);
setcolor(6);
arc(300,200,180,0,50);
setcolor(7);
arc(360,260,180,0,50);
setcolor(8);
arc(370,270,180,0,50);
setcolor(9);
arc(380,280,180,0,50);
setcolor(10);
arc(390,290,180,0,50);
line(150,200,240,290);
line(350,200,440,290);
getch();
closegraph();
}CNTT-ĐHThành Đô
Lưu Văn Bình 1300783 || Trần Văn Hòa || Phan Thị Quỳnh Mai || Nguyễn Văn Hiển || Nguyễn Thị Giang || Bùi Thanh Lam
Chủ Nhật, 6 tháng 9, 2015
Mặt cong B-Spline
1. Mặt cong B-Spline
Phương trình mặt B-spline:
P
ij là điểm kiểm soát
N và M là đa thức B-spline
Với các mặt cong mở mặt cong phụ thuộc vào các nút vector
Đặc điểm của mặt cong B-Spline
* Số bậc caonhất của bề mặt theo mỗi hướng thì bằng số điểm kiểm soát -1 theo hướng đó.
*Đạo hàm riêng của phương trình bề mặt theo mỗi tham biến có bậc bằng số điểm kiểm
soát theo tham biến đó trừ 2.
* Bề mặt B-spline thì không chịu ảnh hưởng của phép biến đổi anfine. Bề mặt sẽ thay đổi
nếu ta thay đổi đa giác kiểm soát.
*Ảnh hưởng của một điểm kiểm soát đơn được giới hạn bởi + - k/2 h/2 khoảng đối với mỗi
tham số.
*Nếu số đỉnh của đa giác kiểm soát bằng số bậc theo mỗi tham biến và không có điểm kép
nào thì mặt B-spline sẽ chuyển thành mặt Bezier.
* Nếu các đa giác kiểm soát có dạng tam giác thì lưới đa giác kiểm soát sẽ có hình dáng gần
giống với bề mặt cong.
* Mỗi mặt B-Spline luôn nằm trong bao lồi của đa giác kiểm soát .
* Mỗi mặt B-Spline có dáng điệu luôn bám theo hình dáng của đa giác kiểm soát.
Phương trình mặt B-spline:
P
ij là điểm kiểm soát
N và M là đa thức B-spline
Với các mặt cong mở mặt cong phụ thuộc vào các nút vector
Đặc điểm của mặt cong B-Spline
* Số bậc caonhất của bề mặt theo mỗi hướng thì bằng số điểm kiểm soát -1 theo hướng đó.
*Đạo hàm riêng của phương trình bề mặt theo mỗi tham biến có bậc bằng số điểm kiểm
soát theo tham biến đó trừ 2.
* Bề mặt B-spline thì không chịu ảnh hưởng của phép biến đổi anfine. Bề mặt sẽ thay đổi
nếu ta thay đổi đa giác kiểm soát.
*Ảnh hưởng của một điểm kiểm soát đơn được giới hạn bởi + - k/2 h/2 khoảng đối với mỗi
tham số.
*Nếu số đỉnh của đa giác kiểm soát bằng số bậc theo mỗi tham biến và không có điểm kép
nào thì mặt B-spline sẽ chuyển thành mặt Bezier.
* Nếu các đa giác kiểm soát có dạng tam giác thì lưới đa giác kiểm soát sẽ có hình dáng gần
giống với bề mặt cong.
* Mỗi mặt B-Spline luôn nằm trong bao lồi của đa giác kiểm soát .
* Mỗi mặt B-Spline có dáng điệu luôn bám theo hình dáng của đa giác kiểm soát.
Tóm tắt:
Việc tạo ra các đường cong theo ý muốn cũng là vấn đề thường gặp khi làm việc với đồ hoạ
máy tính. Chúng ta khảo sát cách tiếp cận vẽ đường cong bằng Hermite, Bezier và B-spline. Các
cách tiếp cận này dựa trên cơ sở vẽ đường cong bằng một tập điểm mô tả hình dáng của đường
cong gọi là tập điểm kiểm soát. Khi thay đổi tập điểm này, hình dáng của đường cong sẽ thay đổi
theo. Cách tiếp cận này cho thấy sự thuận lợi và linh hoạt khi cần phải vẽ các đường cong phức
tạp và do đó nó được dùng nhiều trong thiết kế.
Một nhược điểm trong cách vẽ đường cong bằng Bezier là khi một phần của đường cong đã
đạt yêu cầu, nhưng khi hiệu chỉnh phần còn lại sẽ mất đi phần đã đạt yêu cầu, hay việc nối trơncác đường cong sẵn có. Để khắc phục các vấn đề này ta có cách tiếp cận cải tiến vẽ đường cong
bằng B-spline.
Tương tự như vậy việc biểu diễn các mặt cong trong đồ hoạ máy tính cũng là một vấn đề
cần thiết để mô tả đối tượng trong thế giới thực. Chúng ta khảo sát về các phương pháp biểu diễn
mặt cong thông qua phương trình tham số. Trong đó, phương trình tham số của một mặt có dạng
là một phương trình tham số hai biến p(u,v) và một điểm bất kỳ trên mặt sẽ được biểu diễn dưới
dạng p(u,v)= (x(u,v), y(u,v), z(u,v)). Chúng ta khảo sát một số mặt đơn giản như: mặt kẻ, mặt tròn
xoay, mặt trượt và mặt Boolean Sum.
Trên cơ sở các đường cong bằng Hermite, Bezier và B-spline chúng ta cũng xây dựng được
các mặt Hermite, Bezier và B-spline.
Việc tạo ra các đường cong theo ý muốn cũng là vấn đề thường gặp khi làm việc với đồ hoạ
máy tính. Chúng ta khảo sát cách tiếp cận vẽ đường cong bằng Hermite, Bezier và B-spline. Các
cách tiếp cận này dựa trên cơ sở vẽ đường cong bằng một tập điểm mô tả hình dáng của đường
cong gọi là tập điểm kiểm soát. Khi thay đổi tập điểm này, hình dáng của đường cong sẽ thay đổi
theo. Cách tiếp cận này cho thấy sự thuận lợi và linh hoạt khi cần phải vẽ các đường cong phức
tạp và do đó nó được dùng nhiều trong thiết kế.
Một nhược điểm trong cách vẽ đường cong bằng Bezier là khi một phần của đường cong đã
đạt yêu cầu, nhưng khi hiệu chỉnh phần còn lại sẽ mất đi phần đã đạt yêu cầu, hay việc nối trơncác đường cong sẵn có. Để khắc phục các vấn đề này ta có cách tiếp cận cải tiến vẽ đường cong
bằng B-spline.
Tương tự như vậy việc biểu diễn các mặt cong trong đồ hoạ máy tính cũng là một vấn đề
cần thiết để mô tả đối tượng trong thế giới thực. Chúng ta khảo sát về các phương pháp biểu diễn
mặt cong thông qua phương trình tham số. Trong đó, phương trình tham số của một mặt có dạng
là một phương trình tham số hai biến p(u,v) và một điểm bất kỳ trên mặt sẽ được biểu diễn dưới
dạng p(u,v)= (x(u,v), y(u,v), z(u,v)). Chúng ta khảo sát một số mặt đơn giản như: mặt kẻ, mặt tròn
xoay, mặt trượt và mặt Boolean Sum.
Trên cơ sở các đường cong bằng Hermite, Bezier và B-spline chúng ta cũng xây dựng được
các mặt Hermite, Bezier và B-spline.
Mặt cong Bezier
2. Mặt cong Bezier
Mảnh-patch Bézier:
Hình vẽ: Mặt cong Bezie
= a3(v)
Mảnh-patch Bézier:
Hình vẽ: Mặt cong Bezie
= v P01 + (1 - v)P00 + a3(v) -(1 - v)P00 - v P01
= a3(v)
Mặt cong bậc ba Hermit
3.Mặt cong bậc ba Hermit:
Phải đảm bảo là đường cong không gian với 3 trục toạ độ x, y, z. Tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý muốn xuất hiện ở những đường đa thức bậc cao. Công thức mô tả:
Tường minh : y = f3 (x),z = g3 (x)
Không tường minh: f3 (x,y,z) = 0
Biểu diễn các đường cong tham biến (Parametric representation):
x = f3 (u), y = f3 (u), z = f3 (u) trong đó u ∈[0 1]
Theo Lagrange:
x = a1 + b1u + c1u2 + d1u3 y = a2 + b2u + c2u2 + d2u3 z = a3 + b3u + c3u2 + d3u3
Ở đây ba phương trình với 12 ẩn số
Với 4 điểm p0, p1, p2, p3 phương trình xác định (vì 4 điểm thì xác định 1 đường cong trong không gian).
Mỗi 1 điểm cho ta cặp 3 giá trị:
Cả thảy có 12 phương trình, thay vào 3 phương trình trên ta tính được 12 ẩn a1.....d3
Ghi chú: rõ ràng có sự thay đổi một chút về đường cong thì ta lại phải giải lại hệ phương trình để tính các tham số cho đường cong, dẫn đến tính toán chậm.
Phải đảm bảo là đường cong không gian với 3 trục toạ độ x, y, z. Tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý muốn xuất hiện ở những đường đa thức bậc cao. Công thức mô tả:
Tường minh : y = f3 (x),z = g3 (x)
Không tường minh: f3 (x,y,z) = 0
Đường cong đa thức bậc 3 |
x = f3 (u), y = f3 (u), z = f3 (u) trong đó u ∈[0 1]
Theo Lagrange:
x = a1 + b1u + c1u2 + d1u3 y = a2 + b2u + c2u2 + d2u3 z = a3 + b3u + c3u2 + d3u3
Ở đây ba phương trình với 12 ẩn số
Với 4 điểm p0, p1, p2, p3 phương trình xác định (vì 4 điểm thì xác định 1 đường cong trong không gian).
Mỗi 1 điểm cho ta cặp 3 giá trị:
Cả thảy có 12 phương trình, thay vào 3 phương trình trên ta tính được 12 ẩn a1.....d3
Ghi chú: rõ ràng có sự thay đổi một chút về đường cong thì ta lại phải giải lại hệ phương trình để tính các tham số cho đường cong, dẫn đến tính toán chậm.
Mặt nội suy trên bốn đường biên(Boolean sum surface)
4. Mặt nội suy trên bốn đường biên(Boolean sum surface)
Mặt được xây dựng trên 4 điểm và các đường cong biên, S(u,v) mặt nội suy trên 4 đường
biên.
Hình vẽ: Mô hình mặt cong Boolean Sum
S(u, v) = S1(u, v) + S2(u, v) - P(u,v)
Với:
P(u,v) = (1-u)(1-v)P00 + (1-u)vP01 + u(1-v)P10 + uvP11
S1(u,v) = va0(u) + (1-v)a2(u)
S2(u,v) = ua1(v) + (1-u)a3(v);
P là các đỉnh của mảnh 4
ai(u) là các phương trình đường biên
Ví dụ về mặt Boolean Sum:
Với u = 0
S(0,v) = S1(0,v) + S2(0,v) - P(0, v)
= v a0(0) + (1 - v)a2(0) + 0a1(v)+ 1 a3(v) - (1 - v)P00 - v P01
Mặt được xây dựng trên 4 điểm và các đường cong biên, S(u,v) mặt nội suy trên 4 đường
biên.
S(u, v) = S1(u, v) + S2(u, v) - P(u,v)
Với:
P(u,v) = (1-u)(1-v)P00 + (1-u)vP01 + u(1-v)P10 + uvP11
S1(u,v) = va0(u) + (1-v)a2(u)
S2(u,v) = ua1(v) + (1-u)a3(v);
P là các đỉnh của mảnh 4
ai(u) là các phương trình đường biên
Ví dụ về mặt Boolean Sum:
Với u = 0
S(0,v) = S1(0,v) + S2(0,v) - P(0, v)
= v a0(0) + (1 - v)a2(0) + 0a1(v)+ 1 a3(v) - (1 - v)P00 - v P01
= v P01 + (1 - v)P00 + a3(v) -(1 - v)P00 - v P01
= a3(v)
= a3(v)
Mặt trượt (Sweept Surface )
5. Mặt trượt (Sweept Surface)
Hình vẽ: Mô hình mặt trượt
Sweep surface là mặt được tạo bởi bằng cách trượt một thực thể.
Ví dụ: một đường thẳng, đa giác, một đường cong, một hình… dọc theo một đường trong
không gian.
Q(u,v) = P(u)*[ T(v) ]
P(u) thực thể cần trượt
[ T(v) ] là ma trận biến đổi ([ T(v) ] có thể là ma trận tịnh tiến, quay, hay tỉ lệ …hoặc là kết
hợp của nhiều phép biến đổi đó).
Ví dụ:
P1[000], P2[03 0]
P(t) = P1 + (P2 – P1) *u = [0 3u01]
0 ≤u,v≤ 1
Ví dụ về mặt trượt (Sweept Extrusion)
Hình vẽ: Mô hình mặt trượt
Sweep surface là mặt được tạo bởi bằng cách trượt một thực thể.
Ví dụ: một đường thẳng, đa giác, một đường cong, một hình… dọc theo một đường trong
không gian.
Q(u,v) = P(u)*[ T(v) ]
P(u) thực thể cần trượt
[ T(v) ] là ma trận biến đổi ([ T(v) ] có thể là ma trận tịnh tiến, quay, hay tỉ lệ …hoặc là kết
hợp của nhiều phép biến đổi đó).
Ví dụ:
P1[000], P2[03 0]
P(t) = P1 + (P2 – P1) *u = [0 3u01]
0 ≤u,v≤ 1
Ví dụ về mặt trượt (Sweept Extrusion)
Hình vẽ: Hình thành mặt trượt
Mặt tròn xoay (Revolution surface)
6. Mặt tròn xoay (Revolution surface)
Hình vẽ: Mô hình mặt tròn xoay
Mặt được xây dựng bởi đường thẳng hay một đường cong phẳng, quanh một trục trong
không gian.
Giả sử đường cong phẳng có dạng:
P(t)=[x(t) y(t) z(t)] 0≤t≤tmax
Ví dụ: quay quanh trục x một thực thể nằm trên mặt phẳng xoy, phương trình bề mặt là
Q(t, f ) = [ x(t) y(t) cosfz(t) sinf ]
Ví dụ: Mặt tròn xoay
P1[1 1 0] và P2[6 2 0] nằm trong mặt phẳng xoy. Quay đường thẳng quanh trục ox sẽ
được một mặt nón. Xác định điểm của mặt tại t=0.5, f =p/3.
Phương trình tham số cho đoạn thẳng từ P1 tới P2 là:
Hình vẽ: Mô hình mặt tròn xoay
Mặt được xây dựng bởi đường thẳng hay một đường cong phẳng, quanh một trục trong
không gian.
Giả sử đường cong phẳng có dạng:
P(t)=[x(t) y(t) z(t)] 0≤t≤tmax
Ví dụ: quay quanh trục x một thực thể nằm trên mặt phẳng xoy, phương trình bề mặt là
Q(t, f ) = [ x(t) y(t) cosfz(t) sinf ]
Ví dụ: Mặt tròn xoay
P1[1 1 0] và P2[6 2 0] nằm trong mặt phẳng xoy. Quay đường thẳng quanh trục ox sẽ
được một mặt nón. Xác định điểm của mặt tại t=0.5, f =p/3.
Phương trình tham số cho đoạn thẳng từ P1 tới P2 là:
P(t) = [ x(t) y(t) z(t) ] = P1 + (P1 - P2)t 0 ≤t≤ 1
Với các thành phần Đề-các:
x(t) = x1 + (x2- x1)t = 1+5t
y(t) = y1 + (y2- y1)t = 1+t
z(t) = z1 + (z2- z1)t = 0
Với các thành phần Đề-các:
x(t) = x1 + (x2- x1)t = 1+5t
y(t) = y1 + (y2- y1)t = 1+t
z(t) = z1 + (z2- z1)t = 0
Mặt kẻ (Ruled Surface)
7. Mô hình hoá các mặt cong (Surface Patches)
7.1. Mặt kẻ (Ruled Surface)
Bề mặt được xây dựng bằng cách cho trượt một đoạn thẳng trên hai đường cong. Các mặt
kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai
biên đối diện của mặt kẻ P1(u) và P2(u).
7.1. Mặt kẻ (Ruled Surface)
Bề mặt được xây dựng bằng cách cho trượt một đoạn thẳng trên hai đường cong. Các mặt
kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai
biên đối diện của mặt kẻ P1(u) và P2(u).
Hình vẽ: Mô hình bề mặt kẻ
Phương trình mặt kẻ:
Q(u,v) = P2(u)v + P1(u)(1-v)
Nếu hai đường cong cho trước tương ứng là P1(v) và P2(v)
Phương trình mặt kẻ:
Q(u,v) = P2(u)v + P1(u)(1-v)
Nếu hai đường cong cho trước tương ứng là P1(v) và P2(v)
Mô hình hoá các mặt cong (Surface Patches)
8. Mô hình hoá các mặt cong (Surface Patches)
8.1. Mặt kẻ (Ruled Surface)
Bề mặt được xây dựng bằng cách cho trượt một đoạn thẳng trên hai đường cong. Các mặt
kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai
biên đối diện của mặt kẻ P1(u) và P2(u):
Hình vẽ: Mô hình bề mặt kẻ
Phương trình mặt kẻ:
Q(u,v) = P2(u)v + P1(u)(1-v)
8.2.Mặt tròn xoay (Revolution surface)
Hình vẽ: Mô hình mặt tròn xoay
Mặt được xây dựng bởi đường thẳng hay một đường cong phẳng, quanh một trục trong
không gian.
Giả sử đường cong phẳng có dạng:
P(t)=[x(t) y(t) z(t)] 0≤t≤tmax
Ví dụ: quay quanh trục x một thực thể nằm trên mặt phẳng xoy, phương trình bề mặt là
Q(t, f ) = [ x(t) y(t) cosfz(t) sinf ]
Ví dụ: Mặt tròn xoay
P1[1 1 0] và P2[6 2 0] nằm trong mặt phẳng xoy. Quay đường thẳng quanh trục ox sẽ
được một mặt nón. Xác định điểm của mặt tại t=0.5, f =p/3.
Phương trình tham số cho đoạn thẳng từ P1 tới P2 là:
8.1. Mặt kẻ (Ruled Surface)
Bề mặt được xây dựng bằng cách cho trượt một đoạn thẳng trên hai đường cong. Các mặt
kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai
biên đối diện của mặt kẻ P1(u) và P2(u):
Hình vẽ: Mô hình bề mặt kẻ
Phương trình mặt kẻ:
Q(u,v) = P2(u)v + P1(u)(1-v)
8.2.Mặt tròn xoay (Revolution surface)
Hình vẽ: Mô hình mặt tròn xoay
Mặt được xây dựng bởi đường thẳng hay một đường cong phẳng, quanh một trục trong
không gian.
Giả sử đường cong phẳng có dạng:
P(t)=[x(t) y(t) z(t)] 0≤t≤tmax
Ví dụ: quay quanh trục x một thực thể nằm trên mặt phẳng xoy, phương trình bề mặt là
Q(t, f ) = [ x(t) y(t) cosfz(t) sinf ]
Ví dụ: Mặt tròn xoay
P1[1 1 0] và P2[6 2 0] nằm trong mặt phẳng xoy. Quay đường thẳng quanh trục ox sẽ
được một mặt nón. Xác định điểm của mặt tại t=0.5, f =p/3.
Phương trình tham số cho đoạn thẳng từ P1 tới P2 là:
P(t) = [ x(t) y(t) z(t) ] = P1 + (P1 - P2)t 0 ≤t≤ 1
Với các thành phần Đề-các:
x(t) = x1 + (x2- x1)t = 1+5t
y(t) = y1 + (y2- y1)t = 1+t
z(t) = z1 + (z2- z1)t = 0
Với các thành phần Đề-các:
x(t) = x1 + (x2- x1)t = 1+5t
y(t) = y1 + (y2- y1)t = 1+t
z(t) = z1 + (z2- z1)t = 0
Tam giác – Triangular
9. Tam giác – Triangular
Hình vẽ:Mảnh tam giác
Trong tam giác các điểm có dạng P1, P2, P3
Hệ số: k1, k2, k3 ∈ [ 0, 1]
k1 + k2 + k3 = 1
P = k1P1 + k2P2+ k3P3
Nếu Hệ số ki > 1 hoặc <0 điểm P sẽ nằm ngoài tam giác (Q)
Nếu Hệ số ki = 1 hoặc =0 điểm P sẽ nằm trên cạnh tam giác (R)
Hình vẽ:Mảnh tam giác
Trong tam giác các điểm có dạng P1, P2, P3
Hệ số: k1, k2, k3 ∈ [ 0, 1]
k1 + k2 + k3 = 1
P = k1P1 + k2P2+ k3P3
Nếu Hệ số ki > 1 hoặc <0 điểm P sẽ nằm ngoài tam giác (Q)
Nếu Hệ số ki = 1 hoặc =0 điểm P sẽ nằm trên cạnh tam giác (R)
Hệ tọa độ Barycentric Coordinates
10. Hệ tọa độ Barycentric Coordinates
Tập các điểm P1,P2 ... Pn , tập các tổ hợp của các điểm đó
k1P1 + k2P2 + k3P3 ... + knPn
Với k1 + k2 + k3 + ... + kn =1
Các điểm tạo thành không gian affine với các giá trị tọa độ nates
Tập các điểm P1,P2 ... Pn , tập các tổ hợp của các điểm đó
k1P1 + k2P2 + k3P3 ... + knPn
Với k1 + k2 + k3 + ... + kn =1
Các điểm tạo thành không gian affine với các giá trị tọa độ nates
k1,k2,k3,..knđược gọi là hệ toạ độ barycentric.
Kết nối mảnh tứ giác
11.Kết nối mảnh tứ giác:
Hình vẽ: Kết nối mảnh tứ giác
Thực thể hình học biểu diễn thông qua các mảnh cùng dạng, các mảnh có thể nối với nhau
theo các hướng u,v khi hai mảnh cùng hướng đó. Nếu mọi điểm trên biên của hai mảnh bằng
nhau, hay hai biên bằng nhau. Hai mảnh liên tục bậc C0. Nếu hai biên bằng nhau và đạo hàm bằng
nhau trên cùng một hướng thì hai mảnh gọi là kết nối bậc C1.
theo các hướng u,v khi hai mảnh cùng hướng đó. Nếu mọi điểm trên biên của hai mảnh bằng
nhau, hay hai biên bằng nhau. Hai mảnh liên tục bậc C0. Nếu hai biên bằng nhau và đạo hàm bằng
nhau trên cùng một hướng thì hai mảnh gọi là kết nối bậc C1.
Biểu diễn mảnh tứ giác
12..Biểu diễn mảnh tứ giác :
Phương trình: x=x(u,v) y=y(u,v) u,v ∈ [ 0, 1] z=z(u,v) Q(u,v) = Q[ x=x(u,v) y=y(u,v) z=z(u,v) ]
Thành phần u,v là các tham biến Chương 7: Đường cong và mặt cong trong 3D 131 Các điểm Q(0,0) Q(0,1), Q(1,0), Q(1,1) là cận của mảnh, các đường cong Q(1,v), Q(0,v), Q(u,0), Q(u,1) là các biên của mảnh. Đạo hàm riêng tại điểm Q(u,v) xác định vector tiếp tuyến theo hướng u, v. Hình 7.8 Biểu diễn mảnh tứ giác [ ] Q u v v Q[ ] x u v v y u v v z u v v
Phương trình: x=x(u,v) y=y(u,v) u,v ∈ [ 0, 1] z=z(u,v) Q(u,v) = Q[ x=x(u,v) y=y(u,v) z=z(u,v) ]
Thành phần u,v là các tham biến Chương 7: Đường cong và mặt cong trong 3D 131 Các điểm Q(0,0) Q(0,1), Q(1,0), Q(1,1) là cận của mảnh, các đường cong Q(1,v), Q(0,v), Q(u,0), Q(u,1) là các biên của mảnh. Đạo hàm riêng tại điểm Q(u,v) xác định vector tiếp tuyến theo hướng u, v. Hình 7.8 Biểu diễn mảnh tứ giác [ ] Q u v v Q[ ] x u v v y u v v z u v v
MÔ HÌNH BỀ MẶT (Surface) VÀ CÁC PHƯƠNG PHÁP XÂY DỰNG (khái niệm)
13. MÔ HÌNH BỀ MẶT (Surface) VÀ CÁC PHƯƠNG PHÁP XÂY DỰNG (khái niệm):
Mặt cong (surface): là quỹ đạo chuyển động của một đường cong tạo nên. Biểu diễn tham biến cho mặt cong: 9 Dựa vào việc xây dựng và tạo bề mặt toán học trên những điểm dữ liệu 9 Dựa trên việc xây dựng nên bề mặt phụ thuộc vào biến số có khả năng thay đổi một cách trực diện thông qua các tương tác đồ hoạ. Ta có: x=x(u,v,w) u,v,w ∈ [0, 1] y=y(u,v,w) u + v + w = 1 z=z(u,v,w) Q(u,v,w) = Q[ x=x(u,v,w) y=y(u,v,w) z=z(u,v,w) ] Biểu diễn theo mảnh 9 Biểu diễn miếng tứ giác - quadrilatera Patches 9 Biểu diễn miếng tam giác - Triangular Patches
Mặt cong (surface): là quỹ đạo chuyển động của một đường cong tạo nên. Biểu diễn tham biến cho mặt cong: 9 Dựa vào việc xây dựng và tạo bề mặt toán học trên những điểm dữ liệu 9 Dựa trên việc xây dựng nên bề mặt phụ thuộc vào biến số có khả năng thay đổi một cách trực diện thông qua các tương tác đồ hoạ. Ta có: x=x(u,v,w) u,v,w ∈ [0, 1] y=y(u,v,w) u + v + w = 1 z=z(u,v,w) Q(u,v,w) = Q[ x=x(u,v,w) y=y(u,v,w) z=z(u,v,w) ] Biểu diễn theo mảnh 9 Biểu diễn miếng tứ giác - quadrilatera Patches 9 Biểu diễn miếng tam giác - Triangular Patches
Đường B-spline
14. Đường B-spline :
Với Bezier hay spline đều không cho ta thay đổi đường cong một cách cục bộ, việc thay đổi
vị trí các điểm kiểm soát hay các vector tiếp tuyến không chỉ ảnh hưởng trực tiếp đến độ dốc của
đường cong lân cận quanh điểm kiểm soát mà còn kéo theo ảnh hưởng đến các phần còn lại của
đường cong. Đường Bezier thêm vào đó là khi tính xấp xỉ ở bậc cao sẽ rất phức tạp còn khi liên
kết nhiều đoạn Bazier hay Hermite bậc thấp (bậc ba) có thể đem lại ích lợi khi tính toán nhưng
yếu tố ràng buộc về tính liên tục của đạo hàm bậc cao tại các điểm nối không cho điều khiển cục
bộ như mong muốn.
Việc kết hợp luôn phiên các đoạn cong tổng hợp, thông qua các đa thức tham số xác định
riêng rẽ trên một số điểm kiểm soát lân cận với số bậc tuỳ ý không phụ thuộc vào số lượng các
điểm kiểm soát, cho phép tạo nên đường cong trơn mềm B-spline. Đường cong này đã khắc phục
được các nhược điểm mà các dạng đương cong trước chưa đạt được. Có nghĩa là khi dịch chuyển
điểm kiểm soát của đương cong thì chỉ một vài phân đoạn lân cận của điểm kiểm soát đó bị ảnh
hưởng chứ không phải toàn bộ đường cong.
Với n+ 1 số điểm kiểm soát Pi ta có:
∑=
=
n
i
P u Ni k u Pi
0
, ( ) ( ).
Trong đó Ni,k(u) là hàm hợp B-Spline bậc k-1 và sự khác biệt giữa B-spline và Bezier sẽ
được thể hiện trên đó. Trong đường Bezier bậc của đa thức được xác định bởi số đoạn cong trên
đường cong đó, còn với B-spline bậc được thoả mãn độc lập với số điểm kiểm soát của đường.
Chương 7: Đường cong và mặt cong trong 3D
127
Hơn nữa hàm hợp của Bezier khác 0 trên toàn bộ khoảng của tham số u còn B-spline chỉ
khác 0 trên đoạn ngắn của các tham số. Mỗi đoạn trên hàm hợp chỉ tương ứng với một điểm thì
chỉ dẫn tới sự thay đổi cục bộ trong khoảng mà trên đó tham số của hàm hợp khác 0.
Biểu diễn toán học của B-spline, với hàm B-spline có bậc k-1 xác định thì:
( ) ( )
( ) ( ) ( )
( ) ( ) , 1
1 2
1
1, 1
1
1
, N u
U U
U u N u
U U
u U N u i k
i i k
i
i k
i i k
i k
i k −
+ + −
+
− −
+ −
+ −
−
− + −
− =
Trong đó ui là giá trị tại nút pi với biến số là u được gọi là các vector nút.
Tất cả các giá trị nút đồng thời xác định trên vector nút và các nút nguyên thường sử dụng
dễ dàng. Trong trường hợp này các hàm hợp bậc k sẽ khác 0 trong khoảng k của vector nút và
toàn bộ các giá trị trên vector cho một tập hợp điểm bằng n+1+k.
Không như Bezier, đường B-spline không đi qua hai điểm đầu và cuối trừ khi hàm hợp
được dùng là tuyến tính.
Đường B-spline có thể được tạo qua hai điểm đầu, cuối và tiếp xúc với vector đầu và cuối
của đa giác kiểm soát. Bằng cách thêm vào 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á trị giống nhau không nhiều hơn bậc của đường cong.
Giống như đường cong Bezier, tính chất bao lồi của đa giác kiểm soát và tính chất chuẩn
được thỏa mãn. Vậy có:
Trong đường cong B-spline, 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
Hình 7.7 Đường cong B-spline
⎩
⎨
⎧ ∈ = +
0 others
1 [ , ] ( ) 1
,1
i i
i
u u u
N u
N (u) 1
n
i 0
∑ i,k = =
Chương 7: Đường cong và mặt cong trong 3D
128
Vậy việc xác định các vector nút sẽ phụ thuộc vào sự phân loại của chính bản thân chúng và
điều đó sẽ ảnh hưởng đến hình dạng của đường cong được mô tả. Phân loại sẽ dựa trên loại của
đường cong như sau:
Đều tuần hoàn (periodic)
Không tuần hoàn (open or unperodic)
Không đều (non-uniform)
a. B Spline - Đều và tuần hoàn
Vector nút là đều khi giá trị của chúng cách đều nhau một khoảng ∇ xác định.
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
[ -1-0.6 -0.2 0.2 0.6 1 ] với ∇ xác định = 0.4
Trong các bài toán thực tế, thông thường thì khoảng xác định của tham biến nằm trong
khoảng từ 0 đến 1 hay từ 00 đếm 3600
thì việc chọn giá trị của các vector nút được chuẩn hoá
trong khoảng [0 1] hay [00
3600
] đó.
[ 00.2 0.4 0.6 0.81 ] với ∇ xác định = 0.2
[ 00
1200
2400
3600
] với ∇ xác định = 1200
Bậc (k-1) Cấp (k) Vector nút (m=n+k) Khoảng tham số (k-1)≤t≤(n+1)
1 2 [0 1 2 3 4 5 6 7] 1≤t≤6
2 3 [0 1 2 3 4 5 6 7 8] 2≤t≤6
3 4 [0 1 2 3 4 5 6 7 8 9] 3≤t≤6
Các vector nút gọi là đều và tuần hoàn khi các hàm B-spline đối với mỗi phân đoạn có thể
chuyển đổi lẫn nhau. Bảng trên chỉ ra sự thay đổi của miền tham số và vector nút khác nhau của
các đường cong B-spline khi bậc của đường cong thay đổi. Số lượng của vector nút được qui định
bởi biểu thức m-n+k và số lượng các điểm kiểm soát tính qua biểu thức (n+1) bằng6.
Tính chất:
Ảnh hưởng của mỗi hàm cơ sở được giới hạn trong k đoạn là cấp của đường cong cần thể
hiện. Vậy chúng ta sử dụng đường cong bậc ba thì ảnh hưởng của hàm cơ sở trải dài trên bốn
đoạn của đường cong.
Đường B-spline tuần hoàn không đi qua các điểm đầu và cuối của đa giác kiểm soát ngoại
trừ với đường bậc 1 (k=2) mà khi đó đường cong chuyển dạng thành đường thẳng.
Ví dụ về các đường B-spline tuần hoàn có các bậc khác nhau có cùng các điểm và đa giác
kiểm soát. Khi k=2 đường cong bậc một trùng với các cạnh của đa giác kiểm soát.
Khi k=3, đường cong B-spline bậc 2, bắt đầu tại trung điểm của cạnh thứ nhất và kết thúc
tại trung điểm của cạnh cuối cùng của đa giác kiểm soát.
b. Không tuần hoàn (Open – Non Uniform)
Một vector không tuần hoàn hoặc mở là vector nút có giá trị nút tại các điểm đầu cuối lặp
lại với số lượng các giá trị lặp lại này bằng chính cấp k của đường cong và các giá trị nút trong
mỗi điểm lặp này là bằng nhau
Chương 7: Đường cong và mặt cong trong 3D
129
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 là
không đều.
Ví dụ, xét một đa giác kiểm soát với bốn đỉnh. Các đường cong B-spline cấp 2,3,4 được xây
dựng dựa trên đa giác kiểm soát có số lượng các nút m=n+k sẽ có vector nút như sau:
Cấp (k) số lượng nút (m = n + k) Vector nút không tuần hoàn
2 6 [0 0 1 2 3 3]
3 7 [0 0 0 1 2 2 2]
4 8 [0 0 0 0 1 1 1 1]
Các biểu thức phải được thoả mãn đối với nút ui trên vector nút không tuần hoàn bắt đầu tại
u0.
Danh sách các vector nút không tuần hoàn đã đưa ra ở mục này đều thoả mãn các biểu thức
sau:
ui = 0 1=<i<=k
ui = i-k k+1<i<=n+1
ui = n-k+2 n+1<i<=n+k+1
Các vector nút không tuần hoàn cung cấp các hàm cơ sở được định nghĩa trong một miền
tham số phức tạp và không có sự mất mát như với loại vector tuần hoàn và vì vậy đường cong Bspline
loại này luôn đi qua các điểm đầu và cuối của đa giác kiểm soát.
Ví dụ: hàm hợp bậc ba tính xấp xỉ cho 8 khoảng sẽ xác định trên vector nút là
00001234555. Ở đây chúng ta còn thấy sự thay đổi cục bộ trên đường cong khi ta thay đổi vị trí
mỗi điểm.
Đường cong Bezier là trường hợp đặc biệt của B-spline không tuần hoàn, trong đó số lượng
các đỉnh sử dụng bằng với cấp của đường cong. Vector nút trong trường hợp này là:
[ 0 0 ..... 0 1 1 ...... 1 1 ]
kk
Đường cong B-spline bậc ba với bốn điểm kiểm soát và vector không tuần hoàn [0 0 0 0 1 1
1 1] cũng chính là đường cong Bezier.
c. Không đều
Trong vector nút không tuần hoàn, giá trị các nút xuất hiện tại các biên được lặp lại và các
nút bên trong các bước nút bằng nhau. Nếu một trong hai điều kiện này hoặc cả hai điều kiện này
không được thoả mãn thì vector nút là không đều.
Ví dụ các nút không đều có thể tạo ra bằng cách đặt các giá trị lặp lại đối với các nút ở
khoảng giữa [0 1 2 3 3 4 5]
Hay tạo ra bước nhảy không bằng nhau giữa các nút [0.0 0.2 0.5 0.75 1.0]
Các vector nút loại đều cho phép người sử dụng dễ hình dung và xử lý trong các phép toán
nhưng trong một số các trường hợp bước nút không đều lại có những ưu điểm đặc biệt. Ví dụ như
trong việc điều khiển hình dạng của đường cong trong tiến trình thiết kế khi các sai lệch không
Chương 7: Đường cong và mặt cong trong 3D
130
mong muốn có thể xuất hiện mà việc sử dụng đường cong B-spline đều với các dữ liệu điểm có
các khoảng cách tương đối lớn mà không đều nhau.
Kết luận
o B-spline là một dòng của Bezier
o 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 Bezier
o 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õ ràng hơn.
o Khi tồn tại ảnh hưởng cục bộ càng lớn và đường cong phải đi qua điểm đó.
o Chúng ta có thể thay đổi hình dạng đường cong B-spline bằng cách:
o Thay đổi kiểu vector nút: đều tuần hoàn, mở, không đều
o Thay đổi cấp k của đường cong
o Thay đổi số đỉnh và vị trí các đỉnh đa giác kiểm soát
o Sử dụng các điểm kiểm soát trùng nhau
Với Bezier hay spline đều không cho ta thay đổi đường cong một cách cục bộ, việc thay đổi
vị trí các điểm kiểm soát hay các vector tiếp tuyến không chỉ ảnh hưởng trực tiếp đến độ dốc của
đường cong lân cận quanh điểm kiểm soát mà còn kéo theo ảnh hưởng đến các phần còn lại của
đường cong. Đường Bezier thêm vào đó là khi tính xấp xỉ ở bậc cao sẽ rất phức tạp còn khi liên
kết nhiều đoạn Bazier hay Hermite bậc thấp (bậc ba) có thể đem lại ích lợi khi tính toán nhưng
yếu tố ràng buộc về tính liên tục của đạo hàm bậc cao tại các điểm nối không cho điều khiển cục
bộ như mong muốn.
Việc kết hợp luôn phiên các đoạn cong tổng hợp, thông qua các đa thức tham số xác định
riêng rẽ trên một số điểm kiểm soát lân cận với số bậc tuỳ ý không phụ thuộc vào số lượng các
điểm kiểm soát, cho phép tạo nên đường cong trơn mềm B-spline. Đường cong này đã khắc phục
được các nhược điểm mà các dạng đương cong trước chưa đạt được. Có nghĩa là khi dịch chuyển
điểm kiểm soát của đương cong thì chỉ một vài phân đoạn lân cận của điểm kiểm soát đó bị ảnh
hưởng chứ không phải toàn bộ đường cong.
Với n+ 1 số điểm kiểm soát Pi ta có:
∑=
=
n
i
P u Ni k u Pi
0
, ( ) ( ).
Trong đó Ni,k(u) là hàm hợp B-Spline bậc k-1 và sự khác biệt giữa B-spline và Bezier sẽ
được thể hiện trên đó. Trong đường Bezier bậc của đa thức được xác định bởi số đoạn cong trên
đường cong đó, còn với B-spline bậc được thoả mãn độc lập với số điểm kiểm soát của đường.
Chương 7: Đường cong và mặt cong trong 3D
127
Hơn nữa hàm hợp của Bezier khác 0 trên toàn bộ khoảng của tham số u còn B-spline chỉ
khác 0 trên đoạn ngắn của các tham số. Mỗi đoạn trên hàm hợp chỉ tương ứng với một điểm thì
chỉ dẫn tới sự thay đổi cục bộ trong khoảng mà trên đó tham số của hàm hợp khác 0.
Biểu diễn toán học của B-spline, với hàm B-spline có bậc k-1 xác định thì:
( ) ( )
( ) ( ) ( )
( ) ( ) , 1
1 2
1
1, 1
1
1
, N u
U U
U u N u
U U
u U N u i k
i i k
i
i k
i i k
i k
i k −
+ + −
+
− −
+ −
+ −
−
− + −
− =
Trong đó ui là giá trị tại nút pi với biến số là u được gọi là các vector nút.
Tất cả các giá trị nút đồng thời xác định trên vector nút và các nút nguyên thường sử dụng
dễ dàng. Trong trường hợp này các hàm hợp bậc k sẽ khác 0 trong khoảng k của vector nút và
toàn bộ các giá trị trên vector cho một tập hợp điểm bằng n+1+k.
Không như Bezier, đường B-spline không đi qua hai điểm đầu và cuối trừ khi hàm hợp
được dùng là tuyến tính.
Đường B-spline có thể được tạo qua hai điểm đầu, cuối và tiếp xúc với vector đầu và cuối
của đa giác kiểm soát. Bằng cách thêm vào 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á trị giống nhau không nhiều hơn bậc của đường cong.
Giống như đường cong Bezier, tính chất bao lồi của đa giác kiểm soát và tính chất chuẩn
được thỏa mãn. Vậy có:
Trong đường cong B-spline, 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
Hình 7.7 Đường cong B-spline
⎩
⎨
⎧ ∈ = +
0 others
1 [ , ] ( ) 1
,1
i i
i
u u u
N u
N (u) 1
n
i 0
∑ i,k = =
Chương 7: Đường cong và mặt cong trong 3D
128
Vậy việc xác định các vector nút sẽ phụ thuộc vào sự phân loại của chính bản thân chúng và
điều đó sẽ ảnh hưởng đến hình dạng của đường cong được mô tả. Phân loại sẽ dựa trên loại của
đường cong như sau:
Đều tuần hoàn (periodic)
Không tuần hoàn (open or unperodic)
Không đều (non-uniform)
a. B Spline - Đều và tuần hoàn
Vector nút là đều khi giá trị của chúng cách đều nhau một khoảng ∇ xác định.
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
[ -1-0.6 -0.2 0.2 0.6 1 ] với ∇ xác định = 0.4
Trong các bài toán thực tế, thông thường thì khoảng xác định của tham biến nằm trong
khoảng từ 0 đến 1 hay từ 00 đếm 3600
thì việc chọn giá trị của các vector nút được chuẩn hoá
trong khoảng [0 1] hay [00
3600
] đó.
[ 00.2 0.4 0.6 0.81 ] với ∇ xác định = 0.2
[ 00
1200
2400
3600
] với ∇ xác định = 1200
Bậc (k-1) Cấp (k) Vector nút (m=n+k) Khoảng tham số (k-1)≤t≤(n+1)
1 2 [0 1 2 3 4 5 6 7] 1≤t≤6
2 3 [0 1 2 3 4 5 6 7 8] 2≤t≤6
3 4 [0 1 2 3 4 5 6 7 8 9] 3≤t≤6
Các vector nút gọi là đều và tuần hoàn khi các hàm B-spline đối với mỗi phân đoạn có thể
chuyển đổi lẫn nhau. Bảng trên chỉ ra sự thay đổi của miền tham số và vector nút khác nhau của
các đường cong B-spline khi bậc của đường cong thay đổi. Số lượng của vector nút được qui định
bởi biểu thức m-n+k và số lượng các điểm kiểm soát tính qua biểu thức (n+1) bằng6.
Tính chất:
Ảnh hưởng của mỗi hàm cơ sở được giới hạn trong k đoạn là cấp của đường cong cần thể
hiện. Vậy chúng ta sử dụng đường cong bậc ba thì ảnh hưởng của hàm cơ sở trải dài trên bốn
đoạn của đường cong.
Đường B-spline tuần hoàn không đi qua các điểm đầu và cuối của đa giác kiểm soát ngoại
trừ với đường bậc 1 (k=2) mà khi đó đường cong chuyển dạng thành đường thẳng.
Ví dụ về các đường B-spline tuần hoàn có các bậc khác nhau có cùng các điểm và đa giác
kiểm soát. Khi k=2 đường cong bậc một trùng với các cạnh của đa giác kiểm soát.
Khi k=3, đường cong B-spline bậc 2, bắt đầu tại trung điểm của cạnh thứ nhất và kết thúc
tại trung điểm của cạnh cuối cùng của đa giác kiểm soát.
b. Không tuần hoàn (Open – Non Uniform)
Một vector không tuần hoàn hoặc mở là vector nút có giá trị nút tại các điểm đầu cuối lặp
lại với số lượng các giá trị lặp lại này bằng chính cấp k của đường cong và các giá trị nút trong
mỗi điểm lặp này là bằng nhau
Chương 7: Đường cong và mặt cong trong 3D
129
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 là
không đều.
Ví dụ, xét một đa giác kiểm soát với bốn đỉnh. Các đường cong B-spline cấp 2,3,4 được xây
dựng dựa trên đa giác kiểm soát có số lượng các nút m=n+k sẽ có vector nút như sau:
Cấp (k) số lượng nút (m = n + k) Vector nút không tuần hoàn
2 6 [0 0 1 2 3 3]
3 7 [0 0 0 1 2 2 2]
4 8 [0 0 0 0 1 1 1 1]
Các biểu thức phải được thoả mãn đối với nút ui trên vector nút không tuần hoàn bắt đầu tại
u0.
Danh sách các vector nút không tuần hoàn đã đưa ra ở mục này đều thoả mãn các biểu thức
sau:
ui = 0 1=<i<=k
ui = i-k k+1<i<=n+1
ui = n-k+2 n+1<i<=n+k+1
Các vector nút không tuần hoàn cung cấp các hàm cơ sở được định nghĩa trong một miền
tham số phức tạp và không có sự mất mát như với loại vector tuần hoàn và vì vậy đường cong Bspline
loại này luôn đi qua các điểm đầu và cuối của đa giác kiểm soát.
Ví dụ: hàm hợp bậc ba tính xấp xỉ cho 8 khoảng sẽ xác định trên vector nút là
00001234555. Ở đây chúng ta còn thấy sự thay đổi cục bộ trên đường cong khi ta thay đổi vị trí
mỗi điểm.
Đường cong Bezier là trường hợp đặc biệt của B-spline không tuần hoàn, trong đó số lượng
các đỉnh sử dụng bằng với cấp của đường cong. Vector nút trong trường hợp này là:
[ 0 0 ..... 0 1 1 ...... 1 1 ]
kk
Đường cong B-spline bậc ba với bốn điểm kiểm soát và vector không tuần hoàn [0 0 0 0 1 1
1 1] cũng chính là đường cong Bezier.
c. Không đều
Trong vector nút không tuần hoàn, giá trị các nút xuất hiện tại các biên được lặp lại và các
nút bên trong các bước nút bằng nhau. Nếu một trong hai điều kiện này hoặc cả hai điều kiện này
không được thoả mãn thì vector nút là không đều.
Ví dụ các nút không đều có thể tạo ra bằng cách đặt các giá trị lặp lại đối với các nút ở
khoảng giữa [0 1 2 3 3 4 5]
Hay tạo ra bước nhảy không bằng nhau giữa các nút [0.0 0.2 0.5 0.75 1.0]
Các vector nút loại đều cho phép người sử dụng dễ hình dung và xử lý trong các phép toán
nhưng trong một số các trường hợp bước nút không đều lại có những ưu điểm đặc biệt. Ví dụ như
trong việc điều khiển hình dạng của đường cong trong tiến trình thiết kế khi các sai lệch không
Chương 7: Đường cong và mặt cong trong 3D
130
mong muốn có thể xuất hiện mà việc sử dụng đường cong B-spline đều với các dữ liệu điểm có
các khoảng cách tương đối lớn mà không đều nhau.
Kết luận
o B-spline là một dòng của Bezier
o 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 Bezier
o 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õ ràng hơn.
o Khi tồn tại ảnh hưởng cục bộ càng lớn và đường cong phải đi qua điểm đó.
o Chúng ta có thể thay đổi hình dạng đường cong B-spline bằng cách:
o Thay đổi kiểu vector nút: đều tuần hoàn, mở, không đều
o Thay đổi cấp k của đường cong
o Thay đổi số đỉnh và vị trí các đỉnh đa giác kiểm soát
o Sử dụng các điểm kiểm soát trùng nhau
Đường cong bậc ba Spline
15. Đường cong bậc ba Spline :
Trong công thức của Bezier, chúng ta sử dụng hàm hợp liên tục để xác định điểm kiểm soát tương đối. Với các điểm nội suy thì mức độ tương đối sẽ khác nhau mà trong đó một chuỗi các phần tử nhỏ sẽ kết hợp với nhau tạo ra đường cong đa hợp. Theo tính toán thì đường bậc ba sẽ đa thức bậc thấp nhất có thể để biểu diễn một đường cong trong không gian và chuỗi điểm Hermite sẽ phù hợp nhất đối với việc xây dựng nên đường cong đa hợp này. Việc yêu cầu người sử dụng đưa vào các vector tiếp tuyến tại mỗi điểm trong tập hợp các điểm là cực kỳ bất tiện cho nên thường trong các đường bậc ba đa hợp ta sử dụng các điều kiện biên liên tục trong phép đạo hàm bậc một và hai tại điểm nối giữa. và đường cong được xác định như trên gọi là đường spline bậc ba với phép đạo hàm liên tục bậc hai. Giá trị đạo hàm của đường cong sẽ xác định độ cong tại mỗi điểm nút và nó cũng đưa ra điều kiện biên cho mỗi đoạn trên đường cong. Vậy đường bậc ba spline có ưu điểm là không phải xác định độ dốc của đường tại các nút nhưng nhược điểm của nó là chỉ tạo ra sự thay đổi toàn cục khi ta thay đổi vị trí của điểm. Đường cong – Spline đi qua n điểm cho trước mà mỗi đoạn là các đường cong bậc ba độc lập có độ dốc và độ cong liên tục tại mỗi điểm kiểm soát hay điểm nút. Với n điểm ta có (n-1) đoạn với mỗi đoạn gốm bốn vector hệ số hay 4(n-1) cho n-1 đoạn, và 2(n-1) điều kiện biên và (n- 2) điều kiện về độ dốc cùng (n-2) về độ cong. Để xây dựng nên đường spline có tham số với n điểm nút ta có một dãy các giá trị tham số mà ta gọi là vector nút. u0......un-1 trong đó ui+1 >ui Cần lựa chọn tại mỗi nút, cách lựa chọn đơn giản nhất là theo cách đơn điệu có nghĩa là với giá trị 0 tại điểm đầu và tăng lên 1 tại những điểm kế tiếp. tuy vậy phương pháp này dẫn đến độ cong không mong muốn tại các điểm vì vậy việc tham số hoá sẽ đưa vào chiều dài, nhưng phương pháp này cũng không được chính xác khi mà đường cong chưa xác định chiều dài. Tuy nhiên thông thường người ta sử dụng việc tích luỹ của các dây cung với: u0 =0và ui+1 = ui + di+1 trong đó di: là khoảng cách giữa 2 điểm pi-1 và pi Trong các trường hợp đường cong có bậc lớn hơn ba có thể dùng cho đường spline. Thông thường đường spline bậc n sẽ được xây dựng trên các phần nhỏ liên tục của các biến độc lập. Hình 7.5 Kết nối hai đường cong Hình trên cho thấy hai đoạn cong có chung điểm nối mà đường cong liên tục tại điểm đó, việc biểu diễn tính liên tục của đường cong thông qua chữ cái C-Cuntinue. C0 để đảm bảo không Chương 7: Đường cong và mặt cong trong 3D 125 có sự gián đoạn giữa hai đoạn cong. C1 tính liên tục bậc nhất hay đạo hàm bậc nhất tại điểm nối. C2 đạo hàm bậc hai liên tục của đường cong tại điểm nối. Giả sử khi biểu diễn đường cong mềm thông qua các đoạn cong q1, q2, q3 (mỗi đoạn có 4 vector hệ số) cần thoả mãn: Liên tục tại điểm nối hay C1 0 = C2 0 Độ dốc (hay vector tiếp tuyến) tại điểm nối (điểm cuối của q1 và đầu q2) là như nhau: C1 1 = C2 1 (đạo hàm bậc nhất) Thoả mãn liên tục trên tại điểm nối (đạo hàm bậc 2 liên tục tại điểm nối)C1 2 = C2 2 Việc kết hợp các đoạn cong Hermite bậc ba để mô tả một đường cong mềm theo kiểu phân đoạn spline là phương pháp đơn giản nhất hay còn gọi là phương pháp Hermite nội suy. Với phương pháp này thì tham biến ui cho mỗi đoạn cong i của tập các đoạn cong Hermite sẽ biến đổi trong khoảng từ 0 đến 1 và luôn tồn tại đạo hàm bậc nhất của các đoạn cong tại các điểm nối. Phương trình cho mỗi đoạn cong được sử dụng lúc này là phương trình đường cong bậc ba Hermite
Phân đoạn của đường cong Spline - Hermite Theo Hermite các đoạn là các đường cong, tính liên tục của đạo hàm bậc hai tại các điểm nối có thể dễ dàng đạt được bằng cách đặt P’’i-1(ui-1=1) là đạo hàm bậc hai tại điểm cuối của đoạn (i-1) bằng với P’’i(ui=0) đạo hàm bậc hai tại điểm đầu của đoạn thứ i. P’’i-1(1)= P’’i(0) Có phương trình: Pi(u) = k0i + k1iu + k2iu2 + k3iu3 Đạo hàm bậc hai sẽ là: P’’i(u) = 2k2i + 6k3iu P’’i-1(1)= P’’i(0) nên 2k2(i-1) + 6k3(i-1)u= 2k2i Vì điểm cuối của đoạn i-1 trùng với điểm đầu của đoạn thứ i(Pi(0)=Pi-1(1)) .
Trong công thức của Bezier, chúng ta sử dụng hàm hợp liên tục để xác định điểm kiểm soát tương đối. Với các điểm nội suy thì mức độ tương đối sẽ khác nhau mà trong đó một chuỗi các phần tử nhỏ sẽ kết hợp với nhau tạo ra đường cong đa hợp. Theo tính toán thì đường bậc ba sẽ đa thức bậc thấp nhất có thể để biểu diễn một đường cong trong không gian và chuỗi điểm Hermite sẽ phù hợp nhất đối với việc xây dựng nên đường cong đa hợp này. Việc yêu cầu người sử dụng đưa vào các vector tiếp tuyến tại mỗi điểm trong tập hợp các điểm là cực kỳ bất tiện cho nên thường trong các đường bậc ba đa hợp ta sử dụng các điều kiện biên liên tục trong phép đạo hàm bậc một và hai tại điểm nối giữa. và đường cong được xác định như trên gọi là đường spline bậc ba với phép đạo hàm liên tục bậc hai. Giá trị đạo hàm của đường cong sẽ xác định độ cong tại mỗi điểm nút và nó cũng đưa ra điều kiện biên cho mỗi đoạn trên đường cong. Vậy đường bậc ba spline có ưu điểm là không phải xác định độ dốc của đường tại các nút nhưng nhược điểm của nó là chỉ tạo ra sự thay đổi toàn cục khi ta thay đổi vị trí của điểm. Đường cong – Spline đi qua n điểm cho trước mà mỗi đoạn là các đường cong bậc ba độc lập có độ dốc và độ cong liên tục tại mỗi điểm kiểm soát hay điểm nút. Với n điểm ta có (n-1) đoạn với mỗi đoạn gốm bốn vector hệ số hay 4(n-1) cho n-1 đoạn, và 2(n-1) điều kiện biên và (n- 2) điều kiện về độ dốc cùng (n-2) về độ cong. Để xây dựng nên đường spline có tham số với n điểm nút ta có một dãy các giá trị tham số mà ta gọi là vector nút. u0......un-1 trong đó ui+1 >ui Cần lựa chọn tại mỗi nút, cách lựa chọn đơn giản nhất là theo cách đơn điệu có nghĩa là với giá trị 0 tại điểm đầu và tăng lên 1 tại những điểm kế tiếp. tuy vậy phương pháp này dẫn đến độ cong không mong muốn tại các điểm vì vậy việc tham số hoá sẽ đưa vào chiều dài, nhưng phương pháp này cũng không được chính xác khi mà đường cong chưa xác định chiều dài. Tuy nhiên thông thường người ta sử dụng việc tích luỹ của các dây cung với: u0 =0và ui+1 = ui + di+1 trong đó di: là khoảng cách giữa 2 điểm pi-1 và pi Trong các trường hợp đường cong có bậc lớn hơn ba có thể dùng cho đường spline. Thông thường đường spline bậc n sẽ được xây dựng trên các phần nhỏ liên tục của các biến độc lập. Hình 7.5 Kết nối hai đường cong Hình trên cho thấy hai đoạn cong có chung điểm nối mà đường cong liên tục tại điểm đó, việc biểu diễn tính liên tục của đường cong thông qua chữ cái C-Cuntinue. C0 để đảm bảo không Chương 7: Đường cong và mặt cong trong 3D 125 có sự gián đoạn giữa hai đoạn cong. C1 tính liên tục bậc nhất hay đạo hàm bậc nhất tại điểm nối. C2 đạo hàm bậc hai liên tục của đường cong tại điểm nối. Giả sử khi biểu diễn đường cong mềm thông qua các đoạn cong q1, q2, q3 (mỗi đoạn có 4 vector hệ số) cần thoả mãn: Liên tục tại điểm nối hay C1 0 = C2 0 Độ dốc (hay vector tiếp tuyến) tại điểm nối (điểm cuối của q1 và đầu q2) là như nhau: C1 1 = C2 1 (đạo hàm bậc nhất) Thoả mãn liên tục trên tại điểm nối (đạo hàm bậc 2 liên tục tại điểm nối)C1 2 = C2 2 Việc kết hợp các đoạn cong Hermite bậc ba để mô tả một đường cong mềm theo kiểu phân đoạn spline là phương pháp đơn giản nhất hay còn gọi là phương pháp Hermite nội suy. Với phương pháp này thì tham biến ui cho mỗi đoạn cong i của tập các đoạn cong Hermite sẽ biến đổi trong khoảng từ 0 đến 1 và luôn tồn tại đạo hàm bậc nhất của các đoạn cong tại các điểm nối. Phương trình cho mỗi đoạn cong được sử dụng lúc này là phương trình đường cong bậc ba Hermite
Phân đoạn của đường cong Spline - Hermite Theo Hermite các đoạn là các đường cong, tính liên tục của đạo hàm bậc hai tại các điểm nối có thể dễ dàng đạt được bằng cách đặt P’’i-1(ui-1=1) là đạo hàm bậc hai tại điểm cuối của đoạn (i-1) bằng với P’’i(ui=0) đạo hàm bậc hai tại điểm đầu của đoạn thứ i. P’’i-1(1)= P’’i(0) Có phương trình: Pi(u) = k0i + k1iu + k2iu2 + k3iu3 Đạo hàm bậc hai sẽ là: P’’i(u) = 2k2i + 6k3iu P’’i-1(1)= P’’i(0) nên 2k2(i-1) + 6k3(i-1)u= 2k2i Vì điểm cuối của đoạn i-1 trùng với điểm đầu của đoạn thứ i(Pi(0)=Pi-1(1)) .
Đường cong Bezier
16. Đường cong Bezier :
Việc sử dụng điểm với các vector kiểm soát được độ dốc của đường cong tại những điểm mà nó đi qua. Tuy nhiên không được thuận lợi cho việc thiết kế tương tác, không tiếp cận với các độ dốc của đường cong bằng các giá trị số (Hermite). Paul Bezier, nhân viên hãng RENAULT vào năm 1970 đi đầu trong việc ứng dụng máy tính cho việc xây dựng các bề mặt. Hệ thống UNISURF của ông đựơc áp dụng trong thực tế vào năm 1972 được thiết kế và kiểm xe Mezesez hay Renaut. Bezier đã sử dụng đa giác kiểm soát cho đường cong tại những đỉnh của đa giác và tiếp tuyến tại đó (p0,p1,p2,p3). Ta có p0, p3 tương đương với p0, p1 trên đường Hermite, điểm trung gian p1, p2 được xác định bằng 1/3 theo độ dài của vector tiếp tuyến tại điểm po và p3.
Đường cong và mặt cong trong 3D 123 p1’ = 3(p3 – p2) p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) + p0’(u-2u2 +u3 ) + p1’(-u2 + u3 ) p = p(u) = p0(1 - 3u + 3u2 - u3 ) + p1(3u-6u2 -3u3 ) + p2(3u2 - 3u3 ) + p3u3 Hình 7.4 Hàm hợp của đường cong Bezier Ưu điểm: Dễ dàng kiểm soát hình dạng của đường cong hơn vector tiếp tuyến tại p0’ và p1’ của Hermite. Nằm trong đa giác kiểm soát với số điểm trung gian tuỳ ý (số bậc tuỳ ý), có số bậc =số điểm kiểm soát -1. Đ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 cặp hai vector của đầu cuối đó. Biểu thức Bezier-Bernstain Đường Bezier cũng có thể được biết đến như biểu thức Bezier Bernstain bởi kỹ thuật mà Bezier sử dụng là áp dụng công thức hoá các vector trong phép tính đa giác xấp xỉ được Bernstain phát triển gần đây. Phép toán đại số được xác định như sau: 0≤u≤1 0!=1, ui =1 khi i = 0 ∑= = n i i n Pi P u B u 0 , ( ) ( ) i n i i n B u C n i u u − ( ) = ( , ) (1− ) , !( )! ! ( , ) i n i n C n i − = Trong đó P0.....Pn: vector vị trí của đa giác (n+1) đỉnh.
Việc sử dụng điểm với các vector kiểm soát được độ dốc của đường cong tại những điểm mà nó đi qua. Tuy nhiên không được thuận lợi cho việc thiết kế tương tác, không tiếp cận với các độ dốc của đường cong bằng các giá trị số (Hermite). Paul Bezier, nhân viên hãng RENAULT vào năm 1970 đi đầu trong việc ứng dụng máy tính cho việc xây dựng các bề mặt. Hệ thống UNISURF của ông đựơc áp dụng trong thực tế vào năm 1972 được thiết kế và kiểm xe Mezesez hay Renaut. Bezier đã sử dụng đa giác kiểm soát cho đường cong tại những đỉnh của đa giác và tiếp tuyến tại đó (p0,p1,p2,p3). Ta có p0, p3 tương đương với p0, p1 trên đường Hermite, điểm trung gian p1, p2 được xác định bằng 1/3 theo độ dài của vector tiếp tuyến tại điểm po và p3.
Đường cong và mặt cong trong 3D 123 p1’ = 3(p3 – p2) p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) + p0’(u-2u2 +u3 ) + p1’(-u2 + u3 ) p = p(u) = p0(1 - 3u + 3u2 - u3 ) + p1(3u-6u2 -3u3 ) + p2(3u2 - 3u3 ) + p3u3 Hình 7.4 Hàm hợp của đường cong Bezier Ưu điểm: Dễ dàng kiểm soát hình dạng của đường cong hơn vector tiếp tuyến tại p0’ và p1’ của Hermite. Nằm trong đa giác kiểm soát với số điểm trung gian tuỳ ý (số bậc tuỳ ý), có số bậc =số điểm kiểm soát -1. Đ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 cặp hai vector của đầu cuối đó. Biểu thức Bezier-Bernstain Đường Bezier cũng có thể được biết đến như biểu thức Bezier Bernstain bởi kỹ thuật mà Bezier sử dụng là áp dụng công thức hoá các vector trong phép tính đa giác xấp xỉ được Bernstain phát triển gần đây. Phép toán đại số được xác định như sau: 0≤u≤1 0!=1, ui =1 khi i = 0 ∑= = n i i n Pi P u B u 0 , ( ) ( ) i n i i n B u C n i u u − ( ) = ( , ) (1− ) , !( )! ! ( , ) i n i n C n i − = Trong đó P0.....Pn: vector vị trí của đa giác (n+1) đỉnh.
Đường cong Hermite
17. Đường cong Hermite:
Phương pháp Hermite dựa trên cơ sở của cách biểu diễn Ferguson hay Coons năm 60.
Với phương pháp của Hermite đường bậc ba sẽ xác định bởi hai điểm đầu và cuối cùng với hai góc nghiêng tại hai điểm đó.
Theo công thức toán học hàm bậc ba được biểu diễn dưới dạng:
p = p(u) = k0 + k1u + k2u2 + k3u3
p(u) = ∑kiuii∈n (với ki là các tham số chưa biết)
Độ dốc của đường cong được đo bằng p’(u)
p’ = p’(u) = k1 + 2k2u + 3k3u2
p0 và p1 ta có hai độ dốc p0’ và p1’ với u = 0 và u = 1 tại hai điểm đầu cuối của đoạn [0,1].
p0 (u=0)=k0
p’0(u=0)=k1
p1(u=1)=k0+k1+k2+k3
p’1(u=1)= k1+2k2+3k3
hay
k0=p0 và k1=p’0
k2=3(p1 – p0) - 2p0’ – p1’ và k3 = 2(p0-p1) + p0’ + p1’
Khi đã có ko, k1, k2, k3 thay vào:
p = p(u) = k0 + k1u + k2u2 + k3u3
p0(1-3u2 +2u3 ) + p1(3u2 -2u3 ) + p0’(u-2u2 +u3 ) + p1’(-u2 +u3 )
Thay đổi của các điểm hay các góc nghiêng (thay đổi 2 vector) dẫn đến sự thay đổi hình dạng của đường.
Phương pháp Hermite dựa trên cơ sở của cách biểu diễn Ferguson hay Coons năm 60.
Với phương pháp của Hermite đường bậc ba sẽ xác định bởi hai điểm đầu và cuối cùng với hai góc nghiêng tại hai điểm đó.
đường cong Hermite |
Theo công thức toán học hàm bậc ba được biểu diễn dưới dạng:
p = p(u) = k0 + k1u + k2u2 + k3u3
p(u) = ∑kiuii∈n (với ki là các tham số chưa biết)
Độ dốc của đường cong được đo bằng p’(u)
p’ = p’(u) = k1 + 2k2u + 3k3u2
p0 và p1 ta có hai độ dốc p0’ và p1’ với u = 0 và u = 1 tại hai điểm đầu cuối của đoạn [0,1].
p0 (u=0)=k0
p’0(u=0)=k1
p1(u=1)=k0+k1+k2+k3
p’1(u=1)= k1+2k2+3k3
hay
k0=p0 và k1=p’0
k2=3(p1 – p0) - 2p0’ – p1’ và k3 = 2(p0-p1) + p0’ + p1’
Khi đã có ko, k1, k2, k3 thay vào:
p = p(u) = k0 + k1u + k2u2 + k3u3
p0(1-3u2 +2u3 ) + p1(3u2 -2u3 ) + p0’(u-2u2 +u3 ) + p1’(-u2 +u3 )
Thay đổi của các điểm hay các góc nghiêng (thay đổi 2 vector) dẫn đến sự thay đổi hình dạng của đường.
Đường cong đa thức bậc ba tham biến
18. Đường cong đa thức bậc ba tham biến:
Phải đảm bảo là đường cong không gian với 3 trục toạ độ x, y, z. Tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý muốn xuất hiện ở những đường đa thức bậc cao.
Công thức mô tả:
Tường minh : y = f3 (x),z = g3 (x)
Không tường minh: f3 (x,y,z) = 0
Biểu diễn các đường cong tham biến (Parametric representation):
x = f3 (u), y = f3 (u), z = f3 (u) trong đó u ∈[0 1]
Theo Lagrange:
x = a1 + b1u + c1u2 + d1u3 y = a2 + b2u + c2u2 + d2u3 z = a3 + b3u + c3u2 + d3u3
Ở đây ba phương trình với 12 ẩn số Với 4 điểm p0, p1, p2, p3 phương trình xác định (vì 4 điểm thì xác định 1 đường cong trong không gian).
Mỗi 1 điểm cho ta cặp 3 giá trị:
Cả thảy có 12 phương trình, thay vào 3 phương trình trên ta tính được 12 ẩn a1.....d3
Ghi chú: rõ ràng có sự thay đổi một chút về đường cong thì ta lại phải giải lại hệ phương trình để tính các tham số cho đường cong, dẫn đến tính toán chậm.
Phải đảm bảo là đường cong không gian với 3 trục toạ độ x, y, z. Tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý muốn xuất hiện ở những đường đa thức bậc cao.
Công thức mô tả:
đường cong đa thức bậc 3 |
Tường minh : y = f3 (x),z = g3 (x)
Không tường minh: f3 (x,y,z) = 0
Biểu diễn các đường cong tham biến (Parametric representation):
x = f3 (u), y = f3 (u), z = f3 (u) trong đó u ∈[0 1]
Theo Lagrange:
x = a1 + b1u + c1u2 + d1u3 y = a2 + b2u + c2u2 + d2u3 z = a3 + b3u + c3u2 + d3u3
Ở đây ba phương trình với 12 ẩn số Với 4 điểm p0, p1, p2, p3 phương trình xác định (vì 4 điểm thì xác định 1 đường cong trong không gian).
Mỗi 1 điểm cho ta cặp 3 giá trị:
Cả thảy có 12 phương trình, thay vào 3 phương trình trên ta tính được 12 ẩn a1.....d3
Ghi chú: rõ ràng có sự thay đổi một chút về đường cong thì ta lại phải giải lại hệ phương trình để tính các tham số cho đường cong, dẫn đến tính toán chậm.
Điểm biểu diễn đường cong (curve represents points )
19. Điểm biểu diễn đường cong (curve represents points ):
Ta thấy qua hai điểm vẽ được một đường thẳng. Qua ba điểm vẽ được một đường cong trong mặt phẳng. Qua bốn điểm vẽ được một đường cong trong không gian. Dùng các phương trình đường cong như Hypebol, parabol... thì tính toán phức tạp và không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế.
Chọn đường cong như thế nào để phù hợp với máy tính? Biểu diễn Điểm và kiểm soát đường cong -Points represent-and control-the curve. Đường cong là các đối tượng cơ bản thường là kết quả của tiến trình thiết kế và các điểm đóng vai trò là công cụ để kiểm soát và mô hình hoá đường cong. Cách tiếp cận này là cơ sở của lĩnh vực thiết kế mô hình hình học nhờ máy tính (Computer Aided Geometric Design - CAGD).
Các cách để biểu diễn đường cong:
- Tường minh (Explicit functions):
y = f(x), z = g(x)
- Không tường minh (Implicit equations):
f(x,y,z) = 0
- Biểu diễn các đường cong tham biến (Parametric representation):
x = x(t), y = y(t), z = z(t) trong đó t ∈[0 1]
Hạn chế: Hệ đồ hoạ ứng dụng chỉ mô tả bó hẹp trong đoạn nào đấy Đường cong bậc cao với mỗi giá trị của x ta luôn có 2 tập giá trị của y (thực tế chỉ cần 1) Chúng ta cần biểu diễn đường cong mềm (chỉ biễu diễn đường “cong gẫy”)
Ta thấy qua hai điểm vẽ được một đường thẳng. Qua ba điểm vẽ được một đường cong trong mặt phẳng. Qua bốn điểm vẽ được một đường cong trong không gian. Dùng các phương trình đường cong như Hypebol, parabol... thì tính toán phức tạp và không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế.
Chọn đường cong như thế nào để phù hợp với máy tính? Biểu diễn Điểm và kiểm soát đường cong -Points represent-and control-the curve. Đường cong là các đối tượng cơ bản thường là kết quả của tiến trình thiết kế và các điểm đóng vai trò là công cụ để kiểm soát và mô hình hoá đường cong. Cách tiếp cận này là cơ sở của lĩnh vực thiết kế mô hình hình học nhờ máy tính (Computer Aided Geometric Design - CAGD).
Các cách để biểu diễn đường cong:
- Tường minh (Explicit functions):
y = f(x), z = g(x)
- Không tường minh (Implicit equations):
f(x,y,z) = 0
- Biểu diễn các đường cong tham biến (Parametric representation):
x = x(t), y = y(t), z = z(t) trong đó t ∈[0 1]
Hạn chế: Hệ đồ hoạ ứng dụng chỉ mô tả bó hẹp trong đoạn nào đấy Đường cong bậc cao với mỗi giá trị của x ta luôn có 2 tập giá trị của y (thực tế chỉ cần 1) Chúng ta cần biểu diễn đường cong mềm (chỉ biễu diễn đường “cong gẫy”)
20 ĐƯỜNG CONG - CURVE
20. 20 ĐƯỜNG CONG - CURVE :
Trong các ứng dụng của đồ hoạ máy tính, hầu như các thực thể là đường cong mềm và mặt cong, chúng dùng để mô tả thế giới thực: nhà cửa, xe cộ, núi non….hay xây dựng nên các thực thể đang được thiết kế. Nhưng ta thấy sử dụng các phương trình đường cong không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế, còn nếu ta dùng tập hợp các điểm thì thường cần nhiều dung lượng nhớ để lưu trữ cũng như tốc độ tính toán. Ta có quỹ đạo chuyển động của một điểm trong không gian thì tạo thành đường cong. Trong chương này sẽ đưa ra phương pháp tổng thể về những mô hình toán học để biểu diễn và xây dựng các loại đường và mặt cong trong không gian 3D trên máy tính
Trong các ứng dụng của đồ hoạ máy tính, hầu như các thực thể là đường cong mềm và mặt cong, chúng dùng để mô tả thế giới thực: nhà cửa, xe cộ, núi non….hay xây dựng nên các thực thể đang được thiết kế. Nhưng ta thấy sử dụng các phương trình đường cong không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế, còn nếu ta dùng tập hợp các điểm thì thường cần nhiều dung lượng nhớ để lưu trữ cũng như tốc độ tính toán. Ta có quỹ đạo chuyển động của một điểm trong không gian thì tạo thành đường cong. Trong chương này sẽ đưa ra phương pháp tổng thể về những mô hình toán học để biểu diễn và xây dựng các loại đường và mặt cong trong không gian 3D trên máy tính
Đăng ký:
Bài đăng (Atom)