Tải bản đầy đủ (.pdf) (74 trang)

TÁI TẠO BỀ MẶT B-SPLINE VỚI ĐIỀU KIỆN RÀNG BUỘC Chuyên ngành: Khoa học máy tính LUẬN VĂN THẠC SĨ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.74 MB, 74 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

LÊ VĂN ĐỊNH

TÁI TẠO BỀ MẶT B-SPLINE
VỚI ĐIỀU KIỆN RÀNG BUỘC

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ

Người hướng dẫn khoa học: PGS.TS. NGUYỄN TẤN KHÔI

Đà Nẵng - Năm 2017


i

LỜI CAM ĐOAN
Tôi xin cam đoan:
-

Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của PGS.TS. Nguyễn Tấn Khôi

-

Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và
trung thực.



-

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tơi xin chịu hồn tồn trách nhiệm.

Tác giả luận văn

Lê Văn Định


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 tố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 tố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 tố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 tố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 tố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. Ngồ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 tồ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 tố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. Ngồ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 tố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 hồ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
hồ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 hồn (periodic)

-

Khơng tuần hồ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)


17

N 0,2 (u ) 

u  t0
t u
N 0,1 (u )  2
N1,1 (u )
t1  t0
t2  t1

Ta nhận thấy N0,2 được tính dựa vào N0,1 và N1,1. Hệ số của N0,1 là

(1.20)
u  t0
t1  t0

,

đây là phương trình của một hàm số bậc nhất tăng trên đoạn [t0, t1], giá trị của
hàm bằng 0 khi u=t0 và bằng 1 khi u = t1 (ta gọi đây là nửa bên trái của N0,2).
Tương tự hệ số của N1,1 là một hàm số bậc nhất giảm trên đoạn [t1,t2], giá trị của
hàm bằng 1 khi u = t1 và bằng 0 khi u = t2 (ta gọi đây là nửa bên phải của N0,2).
Phương trình của N0,2(u) có thể viết lại như sau:


0 u 

 u  t0
 t  t0
N 0,2 (u )   1
 t2  u
 t2  t1

0 u 

t0
t0  u  t1
t1  u  t 2
t2

(1.21)

Tổng qt ta có cơng thức sau:
 0 u  ti

 u  ti
ti  u  ti 1
 ti 1  ti
N i ,2 (u )  
 ti  2  u
ti 1  u  ti  2
 ti  2  ti 1

 0 u  ti  2


(1.22)


18

Hình 1.5: (a) Đồ thị của hàm N0,2, (b) Đồ thị các hàm Ni,2 (0≤ i ≤3), (c)
Đường cong C(u) [14]
Trên đoạn [ti, ti+1] (1 ≤ i ≤ n) có hai nửa đồ thị, nửa bên trái của Ni,2 và nửa
bên phải của Ni-1,2. Do đó phương trình của C(u) trên đoạn [ti, ti+1] là:
C (u ) 

ti 1  u
u  ti
Pi 1 
Pi
ti 1  ti
ti 1  ti

(1.23)

Hai hệ số của Pi-1 và Pi đều không âm và có tổng bằng 1 do đó C(u) chính là
đoạn thẳng Pi-1Pi.
Chứng tỏ khi m = 2 đường cong B-spline chính là đường gấp khúc P0P1…Pn
như minh họa trong hình 1.5(c).
+Khi m=3 hàm B-spline Ni,3 sẽ có bậc bằng 2, phương trình đường cong Bspline có dạng:
n

C (u )   N i ,3 (u ).Pi  N 0,3 P0  N1,3 P1  ...  N n,3 Pn

(t2 ≤ u ≤ tn+1)


(1.24)

i 0

Ta xét hàm B-spline đầu tiên N0,3(u):
N 0,3 (u ) 

u  t0
t u
N 0,2 (u )  3
N1,2 (u )
t 2  t0
t3  t1

(1.25)


19

N0,3(u) là hàm hợp của hai hàm N0,2(u) và N1,2(u) trên đoạn [t0,t3], thay các
giá trị đã biết N0,2(u) và N1,2(u) vào ta có:

0 u  t0

 u  t0  u  t0 t  u  t
0
1
 t2  t0 t1  t0


 u  t0 t2  u t3  u u  t1
N 0,3 (u )  



t

t
t

t
t

t
t 2  t1
0
2
1
3
1
 2
 t3  u t3  u

t 2  u  t3

 t3  t1 t3  t2
0 u  t
3



t1  u  t 2

(1.26)

Giá trị của hàm N0,3(u) hoặc là bằng 0 hoặc là một hàm bậc 2 theo biến u.
Tổng quát ta có cơng thức sau:

0 u  ti

 u  ti  u  t i
ti  u  ti 1
 ti  2  ti ti 1  ti

t u
t u
u  ti 1
 u  ti
N 0,3 (u )  
 i2
 i 3

 ti  2  ti ti  2  ti 1 ti 3  ti 1 ti  2  ti 1
 ti 3  u
t u
 i 3
ti  2  u  t i  3

t

t

t

t
 i 3 i 1 i 3 i  2
0 u  t
i 3


ti 1  u  ti  2

(1.27)

Hình 1.6(a) Minh họa đồ thị của N0,3(u) phần đồ thị nằm trên trục hồnh ta
có thể chia thành ba phần tạm gọi là phần bên trái, phần ở giữa và phần bên
phải. Hình 1.6(b) Minh họa các đoạn đồ thị khác 0 của Ni,3, 0 ≤i ≤2, phần bên
trái và phần ở giữa của N3,3(u), phần bên trái của N4,3(u). Hình 1.6(c) Đường
cong C(u) qua 5 điểm P0P1…P4


×