ii
MỤC LỤC
LỜI CAM ĐOAN ...................................................................................................... i
MỤC LỤC ................................................................................................................. ii
DANH MỤC CÁC TỪ VIẾT TẮT ........................................................................ iv
DANH MỤC CÁC HÌNH .........................................................................................v
MỞ ĐẦU ....................................................................................................................1
CHƯƠNG 1................................................................................................................5
TỔNG QUAN VỀ ĐỀ TÀI .......................................................................................5
1.1. BIỄU DIỄN MÔ HÌNH 3D..................................................................................5
1.2. ĐƯỜNG CONG THAM SỐ ................................................................................6
1.2.1.
Đường cong B-spline ..........................................................................6
1.2.2.
Đường cong NURBS ...........................................................................8
1.3. MẶT CONG THAM SỐ ....................................................................................10
1.3.1.
Mặt cong B-spline .............................................................................10
1.3.2.
Mặt cong NURBS .............................................................................12
1.4. XÁC ĐỊNH VÀ BIỂU DIỄN ĐỐI TƯỢNG .....................................................14
1.4.1.
Vector nút ..........................................................................................14
1.4.2.
Xác định một điểm trên đối tượng B-spline ......................................15
1.5. KẾT CHƯƠNG ..................................................................................................20
CHƯƠNG 2..............................................................................................................22
CÁC PHƯƠNG PHÁP NỘI SUY VÀ XẤP XỈ ĐỐI TƯỢNG 3D ......................22
2.1. GIỚI THIỆU ......................................................................................................22
2.2. NỘI SUY VÀ XẤP XỈ ĐỐI TƯỢNG B-SPLINE .............................................22
2.2.1.
Phương pháp nội suy .........................................................................22
2.2.2.
Phương pháp xấp xỉ ...........................................................................33
2.2.3.
Nhận xét đánh giá về các phương pháp tái tạo ..................................43
2.3. KẾT CHƯƠNG ..................................................................................................43
CHƯƠNG 3..............................................................................................................44
TÁI TẠO ĐỐI TƯỢNG 3D VỚI ĐIỀU KIỆN RÀNG BUỘC ...........................44
3.1. XẤP XỈ MẶT CONG B-SPLINE VỚI TẬP ĐIỂM DỮ LIỆU.........................44
3.1.1.
Tái tạo đường cong B-spline đi qua một tập điểm cho trước ............46
3.1.2.
Thuật toán bình phương tối thiểu ......................................................48
3.2. KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH ....................................................50
3.2.1.
Tái tạo đường cong B-spline .............................................................50
iii
3.2.2.
Tái tạo mặt cong B-spline .................................................................51
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................................54
TÀI LIỆU THAM KHẢO ......................................................................................56
iv
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt
Nội dung
CMM
Coordinate Measuring Machine
CAD
Computer Aided Design
CAM
Computer Aided Manufacturing
B-SPLINE
Basic Spline
NURBS
Non - Uniform Ration B-Spline
3D
3 Dimension
GN
Gauss – Newton
LM
Levenberg Marquardt
GL
Graphic Library
v
DANH MỤC CÁC HÌNH
Ký hiệu
Tên hình
Trang
Hình 1.1
Một cảnh đồ họa 3 chiều
5
Hình 1.2
Đường cong NURBS
9
Hình 1.3
Mặt cong B-spline
11
Hình 1.4
Mặt cong NURBS
13
Hình 1.5
Đồ thị của hàm
18
Hình 1.6
Minh họa các phần đồ thị
20
Hình 2.1
Nút đường cong trước và sau khi di chuyển
29
Hình 2.2
Mặt cong trước và sau khi di chuyển
30
Hình 2.3
Điểm dữ liệu để nội suy
31
Hình 2.4
Nội suy dữ liệu dọc theo hướng u
34
Hình 2.5
Xấp xỉ đường cong B-spline bậc 3 và 5 điểm điều
khiển
40
Hình 3.1
Sơ đồ khối tái tạo đối tượng bằng phương pháp bình
phương tối thiểu
49
Hình 3.2
Kết quả tái tạo đường cong B-spline bậc 3 từ tập đầu
vào 30 điểm
50
Hình 3.3
Các kết quả tái tạo các đường cong B-spline
50
Tái tạo bề mặt B-Spline từ tập đầu vào với mặt cong
52
Hình 3.4
5x6 điểm điều khiển
Hình 3.5
Các kết quả xử lý bề mặt NURBS cắt từ tập đầu vào
với mặt cong 12x12 điểm điều khiển và 2 đường cong
cắt
53
Hình 3.6
Các kết quả tái tạo bề mặt NURBS
53
1
MỞ ĐẦU
1. LÝ DO CHỌN ĐỀ TÀI
Mô hình hóa hình học đang là một lĩnh vực hết sức quan trọng và được ứng
dụng rất nhiều trong cuộc sống. Nhiều ứng dụng liên quan đến CAD/CAM, thực
tế ảo, hoạt hình và mô hình trực quan đều được biểu diễn bằng bề mặt NURBS
[2][3]. Trong công nghệ thiết kế các mô hình tạo mẫu và sản xuất được thực
hiện với các hệ thống CAD thường dựa trên các bề mặt cắt của NURBS. Trong
đó bề mặt NURBS cung cấp một cách thuận tiện để mô tả hầu hết các hình dạng
và việc cắt cung cấp cho nhà thiết kế có khả năng loại bỏ các khu vực không cần
thiết trên bề mặt [5][6]. Kết hợp hàng ngàn các bề mặt giúp cho nhà thiết kế có
thể mô tả các đối tượng rất phức tạp như xe hơi, máy bay hoặc tàu ngầm…
Tuy nhiên việc biểu diễn các bề mặt NURBS để loại bỏ các bề mặt không
cần thiết theo đường cong cắt đang đặt ra các vấn đề thách thức cần xử lý về mặt
thời gian, toán học, thuật toán… nhằm giải quyết vấn đề phát sinh trong quá
trình biểu diễn bề mặt cắt NURBS.Để tạo thành các khối vật thể trong không
gian 3D, trong kĩ thuật người ta sử dụng các đường cong phẳng. Trong toán học,
các đoạn cong được biểu diễn bằng một hàm ẩn, hàm tường minh hoặc một hàm
tham số. Hàm để mô tả đường cong được gọi là mô hình toán học của đường
cong. Có nhiều hàm để mô tả các đường cong nhưng người ta sử dụng rộng rãi
hàm đa thức vì hàm này dễ làm việc và linh hoạt trong việc mô tả nhiều loại
đường cong kỹ thuật [1][15].
Để xây dựng đoạn cong trên cơ sở điểm đã biết, người ta phải dựa vào một
hàm nào đó và gọi nó là hàm cơ sở. Sử dụng hàm đa thức chuẩn làm hàm cơ sở
có ưu việt là dễ dàng định nghĩa và đánh giá. Do vậy, việc nghiên cứu xây dựng
mô hình hóa đối tượng 3D linh hoạt, phục vụ quá trình nghiên cứu, tiến tới tái
2
tạo các vật thể từ máy đo 3 chiều CMM hay từ máy quét là một yêu cầu thiết
yếu [8].
Với bài toán tái tạo đường và mặt cong tham số 3D sử dụng phương pháp
bình phương tối thiểu thì công cụ quan trọng để giải quyết bài toán này là lý
thuyết bình phương tối thiểu. Đây là phương pháp tối ưu hóa để lựa chọn một
đường khớp nhất cho một dải dữ liệu với cực trị của tổng các sai số thống kê
giữa đường khớp và dữ liệu. Nhiều bài toán tối ưu hóa cũng được quy về tìm
cực trị của dạng bình phương [7][11]. Tuy nhiên phương pháp bình phương tối
thiểu chưa giải quyết được vấn đề về ràng buộc một tập điểm hoặc ràng buộc về
độ cong của đường cong, mặt cong tái tạo.
Vì những lý do như trên, tôi đề xuất chọn đề tài luận văn cao học:
“Tái tạo bề mặt B-Spline với điều kiện ràng buộc”
2. MỤC TIÊU CỦA ĐỀ TÀI
Giải quyết bài toán xây dựng ứng dụng tái tạo đường và mặt cong tham số
với điều kiện ràng buộc về một tập con các điểm cố định và độ cong của đường
cong, mặt cong tái tạo.
3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu của đề tài:
- Đường cong và mặt cong B-Spline.
- Các thuật toán nội suy về tái tạo đường và mặt cong tham số 3D
- Các thuật toán xấp xỉ về tái tạo đường và mặt cong tham số 3D
Phạm vi nghiên cứu của đề tài:
- Nghiên cứu đường cong và mặt cong B-Spline.
- Nghiên cứu tái tạo đường và mặt cong B-spline đi qua một số điểm yêu
cầu cho trước dựa trên bài toán xấp xỉ bình phương.
3
4. PHƯƠNG PHÁP NGHIÊN CỨU
Phương pháp lý thuyết:
- Cơ sở lý thuyết về đường và mặt cong tham số
- Cơ sở lý thuyết về xây dựng các bề mặt cắt NURBS
- Xây dựng thuật toán tái tạo đường và mặt cong B-spline đi qua một số
điểm yêu cầu cho trước dựa trên ràng buộc về điểm và ràng buộc về độ
cong bằng phương pháp bình phương tối thiểu.
Phương pháp thực nghiệm:
- Phân tích và thiết kế các chức năng của chương trình
- Lập trình xây dựng chương trình.
- Đánh giá, thử nghiệm kết quả.
5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI
Ý nghĩa khoa học:
- Áp dụng phương pháp bình phương tối thiểu để tái tạo đường và mặt
cong B-splines đi qua một số điểm yêu cầu cho trước.
Ý nghĩa thực tiễn của đề tài:
- Đề xuất giải pháp góp phần hỗ trợ cho việc mô phỏng các đối tượng
trong thực tế.
- Phục vụ công tác nghiên cứu thiết kế mô hình đối tượng 3D trong các
ngành kỹ thuật.
6. CẤU TRÚC LUẬN VĂN
Luận văn được tổ chức thành ba chương với các nội dung chính như sau:
Chương 1: Tổng quan về đề tài. Trình bày lý thuyết về mô hình hóa đối
tượng 3D. Các phương trình biểu diễn đường và mặt cong tham số và cách xây
dựng các đối tượng 3D.
Chương 2: Tái tạo đường và mặt cong tham số. Nêu ra các phương pháp tái
tạo, so sánh và đề xuất phương pháp mới.
4
Chương 3: Tái tạo đối tượng B-spline với điều kiện ràng buộc. Trình bày
thuật toán bình phương tối thiểu trong tái tạo đối tượng B-spline. Triển khai xây
dựng và đánh giá kết quả.
Kết luận và hướng phát triển của đề tài.
5
CHƯƠNG 1
TỔNG QUAN VỀ ĐỀ TÀI
1.1. BIỄU DIỄN MÔ HÌNH 3D
Khi mô hình hóa và hiển thị một cảnh ba chiều, ta cần phải xem xét rất
nhiều khía cạnh và vấn đề khác nhau chứ không đơn giản là thêm vào tọa độ thứ
ba cho các đối tượng. Bề mặt đối tượng có thể xây dựng bởi nhiều tổ hợp khác
nhau của các mặt phẳng và các mặt cong. Ngoài ra, đôi khi chúng ta cũng cần
mô tả một số thông tin về bên trong các đối tượng. Các công cụ hỗ trợ đồ họa
thường cung cấp một số hàm hiển thị các thành phần bên trong, những đường
nét tiêu biểu hoặc hiển thị một phần của đối tượng ba chiều. Ngoài ra, các phép
biến đổi hình học thường được sử dụng nhiều hơn và đa dạng hơn trong đồ họa
ba chiều so với trong đồ họa hai chiều. Phép biến đổi hệ quan sát trong không
gian ba chiều phức tạp hơn nhiều so với trong không gian hai chiều do chúng ta
phải chọn lựa nhiều tham số hơn khi mô tả một cảnh ba chiều sẽ xuất hiện trên
màn hình như thế nào [1].
Hình 1: Một cảnh đồ họa 3 chiều
6
Các mô tả về một cảnh ba chiều phải đi qua một quy trình xử lí gồm nhiều
công đoạn như phép biến đổi hệ tọa độ quan sát và phép chiếu chuyển cảnh từ
hệ tọa độ quan sát ba chiều xuống hệ tọa độ thiết bị hai chiều. Những phần nhìn
thấy được của cảnh, ứng với một hệ quan sát được chọn nào đó, phải được xác
định và cuối cùng, các thuật toán vẽ mặt sẽ được áp dụng nhằm tạo ra hình ảnh
trung thực (gần với thực tế) của cảnh.
Hai mô hình cơ bản của ứng dụng đồ họa là dựa trên mẫu số hóa và dựa
trên đặc trưng hình học. Trong ứng dụng đồ họa dựa trên mẫu số hóa thì các đối
tượng đồ họa được tạo ra bởi lưới các điểm ảnh rời rạc. Các điểm ảnh này có thể
được tạo ra bằng các chương trình vẽ, máy quét … Các điểm ảnh này mô tả tọa
độ xác định vị trí và giá trị mẫu. Thuận lợi của ứng dụng này là dễ dàng thay đổi
ảnh bằng cách thay đổi màu sắc hay vị trí của các điểm ảnh, hoặc di chuyển
vùng ảnh từ nơi này sang nơi khác. Tuy nhiên, điều bất lợi là không thể xem xét
đối tượng từ các góc nhìn khác nhau. Ứng dụng đồ họa dựa trên đặc trưng hình
học bao gồm các đối tượng đồ họa cơ sở như đoạn thẳng, đa giác… được lưu trữ
bằng các mô hình và các thuộc tính [13].
1.2. ĐƯỜNG CONG THAM SỐ
1.2.1. Đường cong B-spline
Đường cong B-spline chứa các hàm trộn là những hàm Bernstein đặc biệt.
Mỗi điểm điều khiển Bi chỉ liên kết duy nhất một hàm trộn. Do vậy mỗi vector
nút chỉ ảnh hưởng đến đoạn cong trên một khoảng tham số mà tại đó hàm trộn
không bị triệt tiêu. B-spline cũng cho phép hạ bậc hàm trộn và vì vậy hạ bậc
đường cong thì không cần giảm số điểm điều khiển. Lý thuyết về đường cong Bspline lần đầu tiên được trình bày bởi Schoenberg, sau đó Cox và Boor dùng
công thức đệ quy để định nghĩa đường cong B-spline tiện cho việc áp dụng trên
máy tính [14].
7
Đặt P(t) là vector nút dọc theo đường cong, hàm này được xem như là
hàm vector theo tham số t. Đường cong B-spline có phương trình cho bởi:
n 1
P (t ) Bi .N i ,k (t )
(1. 1)
i 1
Với:
-
tmin t tmax
-
2 k n 1
Ở đây Bi là các vector nút của n+1 đỉnh của đa giác điều khiển và hàm Ni,k
là các hàm trộn của đường cong B-spline.
Ta định nghĩa hàm cơ sở chuẩn thứ i có cấp k (order k) và bậc k-1 (degree
k-1) là Ni,k(t) được xác định bởi công thức đệ quy sau:
1 x i t x i 1
N i ,k (t )
0 otherwise
N i ,k (t )
(t x1 ).N i ,k (t )
xi k 1 xi
(1. 2)
( xi k t ).N i 1,k 1 (t )
(1. 3)
xi k xi 1
Trong đó, vector X= [x1, x2, …, xm] gọi là các vector nút và thỏa mãn công
thức xi xi+1, trong đó tham số biến đổi từ tmin đến tmax dọc theo đường cong P(t).
Thông thường đường cong B-spline được định nghĩa như một hàm đa
thức cấp k (tức bậc k-1) qua các vector nút Bi thỏa mãn các tính chất sau:
- Hàm P(t) là hàm đa thức bậc k-1 trên mỗi khoảng xi t xi 1
- P(t) và đạo hàm của nó có cấp 1,2,. ., k-2 liên tục trên toàn đường cong
- Vì hàm B-spline thực chất là dùng hàm trộn của đường cong Bézier,
nên các tính chất của đường cong Bézier cũng thỏa mãn cho đường
cong B-spline.
- Tổng của các hàm cơ sở B-spline cho mọi giá trị của tham số t là:
n 1
N
i t
i ,k
(t ) 1
(1. 4)
8
-
Mỗi hàm cơ sở thì không âm Ni,k 0
-
Ngoại trừ k=1 thì mỗi hàm cơ sở có duy nhất một giá trị max
-
Cấp lớn nhất của đường cong thì bằng số vector nút ( k n 1 )
-
Có thể biến đổi đường cong thông qua biến đổi các điểm điều khiển
Biểu thức (1. 2) biểu thị rằng việc chọn vector nút có ảnh hưởng lớn đến
các hàm cơ sở Ni,k(t) và do đó ảnh hưởng đến đường cong B-spline. Điều kiện
duy nhất cho vector nút: xi xi 1 , chính là dãy số thực đơn điệu tăng.
1.2.2. Đường cong NURBS
Phương trình toán học biểu diễn đường cong NURBS bậc p (p>0) biểu diễn
như sau:
n
C u
N u .w .P
i ,k
i 0
n
i
i
N u .w
i .k
i 0
,0≤u≤1
(1.5)
i
Trong đó:
-
Pi là điểm điều khiển
-
wi là trọng số tương ứng với các điểm điều khiển(điểm Pi có trọng số wi)
-
Ni,k là B-spline cơ sở cấp k của đường cong B-spline
-
u = [u0, u1, … , um] là vector nút và thuộc khoảng [0, 1] với điều kiện là
không đều.
Đường cong NURBS được viết dưới dạng các hàm hữu tỷ Ri,k như sau:
C (u )
n
P .R
i 0
Trong đó:
i
i ,k
(u )
(1.6)
9
Ri , k (u )
w i .N i , k (u )
n
N
i 0
i ,k
(u ).w(u )
(1.7)
Là tập các hàm cơ sở của đường cong NURBS
Một đường cong NURBS cấp k được biểu diễn bằng một đa thức cấp k.
Mỗi điểm điều khiển được biểu diễn như sau trong hệ tọa độ thuần nhất bốn
chiều:
Pi w (w i . X i (u)w i .Yi (u)w i .Zi (u)w i )
(1.8)
Với wi # 0 để có được Pk ta thực hiện chia 4 tọa độ của nó cho w(u) như
sau:
Xi
X i (u )
w(u )
Yi
Yi
w(u )
Zi
Z i (u )
w(u )
Là các hàm hữu tỷ của NURBS. Lúc đó các điểm điều khiển có dạng
Pi=(xi,yi,zi,1).
Như vậy ta có thể biểu diễn phương trình dưới dạng đơn giản hơn như sau:
n
C w (u ) N i ,k (u ).Pi w
i 0
Hình 1.2: Đường cong NURBS [19]
(1.9)
10
Tính chất đường cong NURBS
Đường cong NURBS là một dạng tổng quát của B-spline, Bézier nên nó có
đầy đủ tính chất của hai loại đường cong này. Ngoài ra nó còn có các tính chất
sau:
-
Đường cong NURBS có thể là mở (open), hoặc đóng (close), hoặc tự cắt
nhau (clamped)
-
Đường cong NURBS C(u) là tổng hợp các phân đoạn, mà mỗi phân đoạn
là một đường cong hữu tỷ cấp k
-
Nếu đường cong NURBS là clamped thì chúng đi qua hai điểm điều khiển
đầu cuối P0, Pn
-
Tính chất bao lồi mạnh mẽ: C(u) luôn nằm trong bao lồi các điểm điều
khiển của nó
-
Đường cong NURBS có thể chuyển về các dạng Bézier, B-spline hay các
đường conic, điều đó thể hiện tính tổng quát của nó.
-
Bậc của các đường cong NURBS tăng chậm hơn so với các đường Bézier
hay đường B-spline.
1.3. MẶT CONG THAM SỐ
1.3.1. Mặt cong B-spline
Có hai loại mặt được sử dụng trong các hệ thống mô hình hóa: tham số
(parametric) và ẩn (implicit). Mặt cong tham số B-spline thường dùng để thiết
kế các mặt cong tự do, được biểu diễn:
f (u, v) ( x(u, v), y(u, v), z(u, v))
Trong đó u, v là tham số
(1.10)
11
Hình 1.3: Mặt cong B-spline
Phương trình biểu diễn
Cho tập hợp (m+1) x (n+1) điểm điều khiển Pi,j với 0 ≤ i ≤ m và 0 ≤ j ≤ n
Phương trình mặt cong B-spline:
m
n
P (u , v) N i , p (u ).N j , q (v ).Pij
i 0 j 0
(1.11)
Trong đó:
-
Vector nút U gồm (m+p+2) phần tử theo hướng u:
U = {u0,u1, …, um+p, um+p+1}, ∀ui ≤ ui+1, ui ∈ R
-
Vector nút V gồm (n+q+2) phần tử theo hướng v:
V = {v0,v1, …, vn+q, un+q+1}, ∀𝑣i ≤ vj+1, uj ∈ R
-
Bậc p > 1 theo hướng u của vector nút
-
Bậc q > 1 theo hướng v của vector nút
- Ni,p(u) và Nj,q (v) là các hàm B-spline cơ bản có bậc tương ứng là p và q.
Tính chất mặt cong B-spline
-
Số bậc cao nhất của bề mặt theo mỗi hướng thì bằng số điểm điều khiển
trừ 1 theo hướng đó.
12
-
Đạ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 điều khiển 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 affine. Bề
mặt sẽ thay đổi nếu ta thay đổi đa giác điều khiển.
-
Nếu số đỉnh của đa giác điều khiển 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 Bézier.
-
Nếu các đa giác điều khiển có dạng tam giác thì lưới của đa giác điều
khiển 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 điều khiển
-
Mỗi mặt B-spline có hình dạng theo đa giác điều khiển.
1.3.2. Mặt cong NURBS
Mặt cong NURBS là các mặt cong B-spline hữu tỷ có các vector nút không
đều. Quá trình tạo mặt cong NURBS là mở rộng của quá trình sử dụng đường
cong NURBS [13].
Hình 1.4: Mặt cong NURBS
Phương trình toán học của mặt cong NURBS:
13
n
S (u, v)
m
w
i 0 j 0
n m
i, j
w
i 0 j 0
.Ni ,k (u ).N j ,l (v).Pi , j
0 u 1, 0 v 1
i, j
(1.12)
.Ni ,k (u ).N j ,l (v)
Trong đó:
-
(n, m): cấp của a trận điểm điều khiển.
-
(k, l): là bậc theo hai hướng u, v của mặt cong NURBS.
-
Pi,j: các điểm điều khiển.
-
Ni,k(u), Nj,l (v) là các hàm B-spline cơ sở.
-
wi,j là trọng số của điểm Pi,j trong hệ tọa độ thuần nhất với wi,j ≥ 0.
Hai vector nút của mặt cong lần lượt có số nút là p, q:
u = [0, 0, …, 0, tk+1 …, tp-k-1, 1, …, 1]
v = [0, 0, …, 0, sq+1 …, sq-l-1, 1, …, 1]
Nếu ta đặt:
n
Ri , j , k ,l (u , v)
m
w
i, j
.N i , k (u ).N j ,l (u )
w
i, j
.N i , k (u ).N j ,l (v)
i 0 j 0
n
m
i 0 j 0
(1.13)
là tích tensơ của mặt cong NURBS. Khi đó ta viết lại như sau:
n
m
S (u , v) Ri , j , k ,l (u , v).Pi , j
i 0 j 0
(1.14)
Tính chất mặt cong NURBS
-
Hai giá trị bậc của mặt cong (k,l) và cấp của ma trận điểm điều khiển
(m, n) và chiều dài (p, q) của hai vector nút có mối liên hệ:
14
P = n + k + 1 và q = m+ 1 + 1
-
(1.15)
Khi thay đổi một hoặc một số điểm điều khiển thì chỉ dẫn đến sự thay
đổi cục bộ hình dạng mặt cong. Các điểm điều khiển Pi,j và trọng số tương ứng
chỉ có ảnh hưởng trong một khoảng (u, v) € [ui, vi+k]∩ [uj, vj+k].
-
Đạo hàm của S (u,v) liên tục đến bậc p – r theo hướng u tại nút bội r (r ≤
p)liên tục đến bậc q – r theo hướng v tại nút bội r (r ≤ p) và liên tục đến mọi cấp
còn lại. Điều này đảm bảo cho mặt cong NURBS trơn mượt.
-
Nếu hai vector nút u, v không tuần hoàn thì mặt cong NURBS sẽ nội suy
qua 4 điểm điều khiển ở 4 góc {P0,0, Pn,0, P0,m, Pn,m}.
-
Nếu cả hai vector nút có dạng u = {0. …, 0, 1, …1} và v = {0, …, 0, 1,
…, 1} thì mặt cong NURBS trở thành mặt cong Bézier, nếu (u,v) là đều và tuần
hoàn thì trở thành mặt B-spline.
-
Mặt cong NURBS có thể tạo mặt cong có hình dạng bất kỳ, từ đó có thể
tạo ra các vật thể sinh động như ý muốn.
-
Đây là dạng tổng quát cho phương pháp biểu diễn bề mặt tổng hợp, bao
gồm tất cả các dạng Bézier, B-spline và các dạng tham số
-
Bề mặt NURBS có tính cơ động cao, dễ dàng điều chỉnh hình dạng từng
phần của mặt mà không làm ảnh hưởng đến toàn bộ mặt.
1.4. XÁC ĐỊNH VÀ BIỂU DIỄN ĐỐI TƯỢNG
1.4.1. Vector nút
Cho U là tập hợp gồm (m+1) số tăng dần u0, u1, …, um trong đó ui gọi là các
nút (knot) và tập U gọi là vector nút (knot vector). Nếu các nút ui xuất hiện k lần
(ui= ui+1 = …ui+k-1 với k>1) gọi là các nút bội được viết là ui(k). Ngược lại các
nút chỉ xuất hiện một lần gọi là các nút đơn. Nếu khoảng cách giữa hai nút là
như nhau ( ui+1 – ui là một hằng số ) thì các vector nút được gọi là là đều
15
(uniform), ngược lại là không đều (non-uniform). Các nút được xem xét bằng
cách chia các điểm thành những khoảng nhỏ [u0, um] [10].
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 này 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 unperiodic)
-
Không đều (non-uniform)
1.4.2. Xác định một điểm trên đối tượng B-spline
Giả sử ta có n + 1 điểm điều khiển P0, P1, …, Pn kí hiệu tọa độ của mỗi
điểm điều khiển là Pi (xi, yi, zi) trong đó 0 ≤ i ≤ n. Tập hợp các điểm điều khiển
ta gọi là đa giác điều khiển (control polygon). Khi đó các điểm trên đường cong
B-spline được tính theo công thức:
n
C (u ) N i ,m (u ).Pi
(tmin ≤ u ≤ tmax , 2 ≤ m ≤ n+1)
(1.16)
i 0
Ta có thể lựa chọn miền giá trị của tham số u. Hàm Ni,m(u) được gọi là hàm
B-Spline là một đa thức có bậc là m - 1. Giá trị của tham số có thể chọn là một
trong số các giá trị từ 2 đến n+1. Trong thực tế ta có thể thiết lập m=1 nhưng
khi đó chỉ hiển thị các điểm điều khiển.
Trước khi định nghĩa hàm Ni,m(u) ta phải xây dựng các khoảng giá trị của
tham số biến u, hàm Ni,m(u) sẽ được định nghĩa trên từng khoảng đó. Muốn vậy ta
định nghĩa r+1 điểm chia t0 ≤ t1 ≤ … ≤ tr, mỗi điểm như vậy được gọi là điểm nút.
Tập hợp các điểm nút T = {t0, t1, …, tr} được gọi là vector nút.
Các điểm nút tạo thành một dãy số không giảm và có thể một vài điểm nút
có giá trị bằng nhau.
16
Hàm Ni,m(u) được định nghĩa một cách đệ quy theo m như sau:
1
N i ,m (u )
0
ti u ti 1
u ti , ti 1
(1.17)
Hàm cơ sở B-spline với m>1 được biểu diễn:
N i ,m (u )
u ti
t
u
N i ,m 1 (u ) i m
N i 1,m 1 (u )
ti m 1 ti
ti m ti 1
(1.18)
Nhìn vào công thức tính trên ta thấy để tính được Ni,m(u) ta cần các nút t0,
t1, …, ti+m trong vector nút. Vậy khi i = n ta cần t0, t1, …, ti+m trong vector nút,
chính vì lí do đó mà ta phải chọn từ đầu vector nút sao cho khoảng giá trị của
tham số u được chia thành n+m khoảng bởi n+m+1 điểm chia hay nói cách khác
r = n+m
Xét trường hợp cụ thể khi m = 1, 2, 3
+ Khi m=1, hàm B-spline Ni,1 (u) N0,1P0 N1,1P1 ... Nn,1Pn (t0 ≤ u ≤ tn+1)
Theo định nghĩa ở trên ta có khi t0 ≤ u ≤ t1 chỉ có duy nhất hàm N0,1=1 còn
các hàm B-spline khác đều bằng 0 do đó C(u)=P0. Tương tự như vậy khi xét lần
lượt các khoảng của tham số u ta thấy trên khoảng [ti, ti+1] chỉ có duy nhất hàm
Ni,1 có giá trị bằng 1, còn các hàm B-spline khác có giá trị bằng 0. Vậy khi m =1
ta có đường cong C(u) chính là các điểm điều khiển rời rạc. Hình 1.5 minh họa
đồ thị cho các hàm Ni,1(0 ≤ i ≤ 4) và đường cong C(u).
+ Khi m=2, hàm B-spline Ni,2 sẽ có bậc bằng 1, phương trình đường cong
B-spline có dạng:
n
C (u ) N i ,2 (u ) Pi N 0,2 P0 N1,2 P1 ... N n,2 Pn
i 0
Ta xét hàm B-spline đầu tiên N0,2
(t1 ≤ u ≤ tn+1)
(1.19)
- Xem thêm -