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
Trang 1LÊ 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
Trang 2LỜ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 hoàn toàn trách nhiệm
Tác giả luận văn
Lê Văn Định
Trang 3MỤ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
Trang 43.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
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
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
Trang 6Hình 2.5 Xấp xỉ đường cong B-spline bậc 3 và 5 điểm điều
Hình 3.1 Sơ đồ khối tái tạo đối tượng bằng phương pháp bình
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
Hình 3.4
Tái tạo bề mặt B-Spline từ tập đầu vào với mặt cong
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
Trang 7đó 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
Trang 8tạ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
Trang 94 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
Trang 10Chươ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
Trang 11CHƯƠ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
Trang 12Cá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 B i 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 B-spline 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]
Trang 13Đặ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:
1 , 1 ( ) ( )
n
i i k i
Ở đây B i là các vector nút của n+1 đỉnh của đa giác điều khiển và hàm N i,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à N i,k (t) được xác định bởi công thức đệ quy sau:
1
,
1 ( ) 0
Trong đó, vector X= [x 1 , x 2 , …, x m ] gọi là các vector nút và thỏa mãn công
thức x ix i+1 , trong đó tham số biến đổi từ t min đến t max 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 x i t x i1
- 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à:
1 , ( ) 1
Trang 14- Mỗi hàm cơ sở thì không âm N i,k0
- 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ở N i,k (t) và do đó ảnh hưởng đến đường cong B-spline Điều kiện
duy nhất cho vector nút: x i x i1, 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 i
i i k i w u N
P w u N u
C
0
0 ,
.
, 0 ≤ u ≤ 1 (1.5)
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:
, 0
n
i i k i
(1.6)Trong đó:
Trang 15, ,
, 0
w ( ) ( )
( ).w( )
i i k
i k i
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:
i i
X u X
u
w( )
i i
Y Y
u
w( )
i i
Z u Z
( ) ( )
n
i k i i
Trang 16 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
Trang 17Hì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:
0 0 ( , ) ( ) ( ).
- 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
- N i,p (u) và N j,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 đó
Trang 18- Đạ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:
Trang 19- (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
- P i,j : các điểm điều khiển
- N i,k (u), N j,l (v) là các hàm B-spline cơ sở
- w i,j là trọng số của điểm Pi,j trong hệ tọa độ thuần nhất với w i,j ≥ 0
Hai vector nút của mặt cong lần lượt có số nút là p, q:
0 0
w ( ) ( ) ( , )
Trang 20P = 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) € [u i , v i+k ]∩ [u j , v j+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 {P 0,0 , P n,0 , P 0,m , P n,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
Cho U là tập hợp gồm (m+1) số tăng dần u 0 , u 1 , …, u m trong đó u i 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
(u i = u i+1 = …u i+k-1 với k>1) gọi là các nút bội được viết là u i (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 ( u i+1 – u i là một hằng số ) thì các vector nút được gọi là là đều
Trang 21(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ỏ [u 0 , u m ] [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 P 0 , P 1 , …, P n kí hiệu tọa độ của mỗi
điểm điều khiển là P i (x i , y i , z i ) 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:
, 0 ( ) ( ).
n
i m i i
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 N i,m (u) ta phải xây dựng các khoảng giá trị của
tham số biến u, hàm N i,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 t 0 ≤ t 1 ≤ … ≤ t r , 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 = {t 0 , t 1 , …, t r } đượ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
Trang 22Hàm Ni,m(u) được định nghĩa một cách đệ quy theo m như sau:
1
,
1
1 ( )
Nhìn vào công thức tính trên ta thấy để tính được N i,m (u) ta cần các nút t 0 ,
t 1 , …, t i+m trong vector nút Vậy khi i = n ta cần t 0 , t 1 , …, t i+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 N i,1( )u N P0,1 0N P1,1 1 N P n,1 n (t0 ≤ u ≤ tn+1)
Theo định nghĩa ở trên ta có khi t 0 ≤ u ≤ t 1 chỉ có duy nhất hàm N 0,1 =1 còn
các hàm B-spline khác đều bằng 0 do đó C(u)=P 0 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 [t i , t i+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 N i,1 (0 ≤ i ≤ 4) và đường cong C(u)
+ Khi m=2, hàm B-spline N i,2 sẽ có bậc bằng 1, phương trình đường cong B-spline có dạng:
,2 0,2 0 1,2 1 ,2 0
Trang 23đây là phương trình của một hàm số bậc nhất tăng trên đoạn [t 0, t 1 ], giá trị của
hàm bằng 0 khi u=t 0 và bằng 1 khi u = t 1 (ta gọi đây là nửa bên trái của N 0,2)
Tương tự hệ số của N 1,1 là một hàm số bậc nhất giảm trên đoạn [t 1, t 2 ], giá trị của
hàm bằng 1 khi u = t 1 và bằng 0 khi u = t 2 (ta gọi đây là nửa bên phải của N 0,2)
Phương trình của N 0,2 (u) có thể viết lại như sau:
0 0
Trang 24Hình 1.5: (a) Đồ thị của hàm N 0,2 , (b) Đồ thị các hàm N i,2 (0≤ i ≤3), (c)
Đường cong C(u) [14]
Trên đoạn [t i , t i+1 ] (1 ≤ i ≤ n) có hai nửa đồ thị, nửa bên trái của N i,2 và nửa
bên phải của N i-1,2 Do đó phương trình của C(u) trên đoạn [t i , t i+1 ] là:
Chứng tỏ khi m = 2 đường cong B-spline chính là đường gấp khúc P 0 P 1… P n
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 spline có dạng:
B-,3 0,3 0 1,3 1 ,3 0
Trang 25N 0,3 (u) là hàm hợp của hai hàm N 0,2 (u) và N 1,2 (u) trên đoạn [t 0 ,t 3 ], thay các
giá trị đã biết N 0,2 (u) và N 1,2 (u) vào ta có:
Hình 1.6(a) Minh họa đồ thị của N0,3(u) phần đồ thị nằm trên trục hoà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 N i,3 , 0 ≤i ≤2, phần bên
trái và phần ở giữa của N 3,3 (u), phần bên trái của N 4,3 (u) Hình 1.6(c) Đường
cong C(u) qua 5 điểm P 0 P 1… P 4
Trang 26Hình 1.6: Minh họa các phần đồ thị
Xét trên đoạn [t i ,t i+1 ], 2 ≤ i ≤ n bao gồm ba phần đồ thị: Phần bên trái của
đồ thị N i,3 phần giữa của đồ thị N i,3 , và phần bên phải của đồ thị N i,3
Do đó trên đoạn [t i , t i+1 ], 2 ≤ i ≤ n ta có:
Trang 27một điểm điều khiển yêu cầu phải có sự thay đổi cục bộ chứ không phải toàn cục trên bề mặt Vì vậy 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 cong và mặt cong phức hợp trong không gian 3D trên máy tính mà ta gọi là đường cong và mặt cong tham số đã được trình bày trong chương này
Trang 28CHƯƠNG 2 CÁC PHƯƠNG PHÁP NỘI SUY VÀ XẤP XỈ ĐỐI TƯỢNG 3D 2.1 GIỚI THIỆU
trong không gian ba chiều muốn xây dựng một đường cong tổng quát khi chưa biết phương trình toán học của nó ta sử dụng một tập hợp các điểm điều
khiển cho trước (control point) Giả sử ta dùng n+1 điểm điều khiển P 0 , P 1 , P 2 ,
…, P n , khi đó có một đường cong C được tạo ra theo một trong hai cách sau
[7][13][18]:
- Nội suy các điểm điều khiển: C bắt đầu tại P 0 và đi qua các điểm điều
khiển trung gian theo thứ tự P 0 , P 1 , P 2 , …, P n , C kết thúc tại P n Nghĩa là xác
định tọa độ của một số điểm nào đó thuộc đường cong, sau đó tìm các phương trình toán học và hiệu chỉnh chúng để chúng đi qua hết các điểm trên và trùng khớp với đường cong ban đầu
- Xấp xỉ các điểm điều khiển: C không nhất thiết phải đi qua các điểm điều khiển nhưng hình dạng của nó được quyết định bởi các điểm điều khiển Nghĩa là xác định một số điểm điều khiển và dùng một giải thuật nào đó để xây dựng đường cong dựa trên các điểm này Do đường cong nguyên thủy và đường cong do máy tính tạo ra thường không đồng nhất ở lần đầu tạo ra, chúng ta sẽ di chuyển một số điểm điều khiển và cho phát sinh lại đường cong mới dựa trên các điểm mới tạo Quá trình này lặp đi lặp lại cho tới khi tìm ra đường cong thỏa mãn phù hợp với đường cong ban đầu thì thôi Lúc này, đường cong được xây
dựng bởi một tập rất ít các điểm điều khiển và có thể được phát sinh lại khi cần 2.2 NỘI SUY VÀ XẤP XỈ ĐỐI TƯỢNG B-SPLINE
2.2.1 Phương pháp nội suy
Trang 29Nội suy là thuật toán dựng đường cong đáp ứng chính xác dữ liệu cho trước
đi qua tọa độ điểm và đáp ứng vector đạo hàm tại điểm liên quan [13]
Nội suy gồm hai phương pháp:
- Nội suy toàn cục (Global Interpolation)
- Nội suy cục bộ (Local Interpolation)
a Nội suy toàn cục đường cong
Phương pháp đơn giản phù hợp với một tập các điểm dữ liệu với một đường cong B-Spline là phương pháp nội suy toàn cục Ý nghĩa của toàn cục sẽ được làm rõ như sau:
Giả sử chúng ta có n+1 điểm dữ liệu D 0, D 1 , …, D n và muốn để phù hợp
chúng với một đường cong B-spline bằng p, p ≤ n là một đầu vào Chúng ta có thể chọn một tập hợp các giá trị tham số t 0 , t 1 , …, t n Lưu ý rằng số lượng các
thông số bằng số điểm dữ liệu, bởi vì tham số t k tương ứng với dữ liệu điểm D k
Từ các thông số này, một vector nút của m+1 được tính bằng m = n + p + 1 Vì
vậy, ta có một vector nút và bậc p¸ phần duy nhất còn thiếu là một tập hợp điểm
điều khiển n + 1 Nội suy toàn cục là cách đơn giản để tìm kiếm các điểm điều
khiển.[13]
Giả sử nội suy đường cong B-spline như sau:
, 0
Đường cong B-spline có n+1 điểm điều khiển chưa biết Kể từ khi tham số
tk tương ứng với điểm dữ liệu điểm Dk, thế tk vào phương trình đường cong sau đây:
D
0 , Với 0 < k < n (2.2)
Trang 30Bởi vì có n+1 điểm cơ sở chức năng trong phương trình B-spline trên
(N 0,p (u), N 1,p (u), N 2,p (u), …, N n,p (u) và n+1 các thông số (t 0 , t 1 , t 2 , …, t n ), thế t k
vào N i,p (u) kết quả có (n+1) 2giá trị Những giá trị này có thể được biểu diễn
thành (n+i)*(n+1) ma trận N, trong đó hàng thứ k chứa các giá trị của N 0,p (u),
N 1,p (u), N 2,p (u), …, N i,p (u) được đánh giá như sau:
( ) ( ) ( ) ( )( ) ( ) ( ) ( )
tính
Trang 31Giả sử có một bộ n + 1 điểm dữ liệu:
thông số n+1 phần tử cho mỗi điểm dữ liệu Các tham số này được liên kết với
điểm dữ liệu để các đường cong B-spline được đánh giá trong một tham số 𝑢̅k , f(𝑢̅k ) sẽ được kết quả Q k Để chọn những thông số này, có một số phương pháp sau:
a.1 Phương pháp cách đều nhau (Equally spaced method)
Cách đơn giản nhất ta có thể tạo ra một vector các tham số của n + 1 phần tử:
Bằng cách sử dụng tham số này, ta nói rằng các điểm dữ liệu cách đều nhau
về không gian tham số, do đó buộc các điểm điều khiển cũng phải cách đều nhau Nếu dữ liệu không thực sự cách đều nhau, tham số này có thể làm cho đường cong B-spline hiển thị một số điểm mờ
a.2 Phương pháp Chord-length
Đây là một phương pháp phức tạp hơn, ta có thể tính toán các thông số như sau:
0
1 1
1
1, , 1
n n
a.3 Phương pháp hướng tâm (Centripetal method)
Phương pháp này tương tự phương pháp trước:
Trang 321 1
1
1, , 1
n n
0 1
1
1
01
Tập hợp các nút (p+1) đầu tiên về 0 và nút (p+1) cuối cùng sau đó giữ lại
để đường cong NURSB sẽ bắt đầu và kết thúc chính xác ở những điểm đó Tại thời điểm này, ta đã gán một vị trí trong không gian tham số dữ liệu điểm (vector tham số) và tạo ra một vector nút, ta có tất cả những thứ cần thiết để nội suy các dữ liệu Bước cuối cùng ta giải hệ phương trình tuyến tính
Chú ý rằng do các tính chất của các hàm cơ sở được đưa ra cho mỗi tham
số 𝑢̅k có ít nhất p + 1 hàm cơ sở khác không, do đó hệ thống được phân dải và
có thể được giải quyết khá nhanh với một số chương trình đặc trưng LAPACK
Trang 33b Nội suy toàn cục mặt cong
Giả sử chúng ta có m+1 hàng và n+1 cột của các điểm dữ liệu D ịj (0 ≤ i ≤
m và 0 ≤ j ≤ n) và muốn tìm một mặt cong B-spline bậc (p,q) có chứa tất cả
trong số đó Tương tự như trường hợp đường cong, ta có điểm dữ liệu và bậc p,
q như là đầu vào Để xác định một mặt cong nội suy B-spline, chúng ta cần hai
vector nút U và V, một cho mỗi hướng và thiết lập các điểm điều khiển Giống
như trường hợp đường cong, số lượng các điểm điều khiển và số lượng các điểm
dữ liệu là bằng nhau (tức là (m+1)(n+1) điểm điều khiển trong m+1 hàng và
n+1 cột) Ta có thể tính toán hai thông số S c (0 ≤ c ≤ m) theo hướng u và t d (0 ≤
d ≤ n) theo hướng v bằng cách thiết lập e, f vào m và n tương ứng Chúng ta
cũng có được vector nút U và V cho u và v hướng tương ứng Vì vậy những gì
còn lại là tìm điểm điều khiển mong muốn
Giả sử mặt cong B-spline được đưa ra như sau:
0 0 ( , ) ( ) ( ).
Kể từ khi nó có chứa tất cả các điểm dữ liệu và các thông số s c và t d tương
ứng với dữ liệu điểm D cd , thế u = s c và v = t d vào kết quả phương trình mặt cong:
0 0 ( ) ( ) ( ).
Trang 34, ij 0
Nếu i được cố định với cùng một giá trị Q id là điểm, tại t d trên đường cong
B-spline bậc q được xác định bởi n+1 điểm điều khiển chưa biết trên hàng i của
P Thế q id vào phương trình của D cd, ta có:
, 0 ( ).
m
cd i p c id i
(2.15) Như vậy, dữ liệu điểm Dcd là điểm đánh giá tại sc, của một đường cong B-
spline bậc p được xác định bởi m +1 các điểm điều khiển chưa biết trên cột d của Q ( tức là, Q 0d , Q 1d , ., Q md ) Lặp đi lặp lại điều này cho mỗi c (0
≤ c ≤ m ), cột thứ d của các điểm dữ liệu ( ví dụ, D 0d , D 1d , , D md ) được lấy từ
Áp dụng phương trình của Q id dưới đây, các điểm dữ liệu trên
hàng i của Q ( tức là, Q i0 , Q i1 , ., Q in ) là các điểm trên một đường cong
B-spline, đánh giá ở t 0 , t 1 , ., t n , bậc q được xác định bởi n + 1 điểm điều khiển
chưa biết P i0 , P i1 , , P Do đó, ứng dụng nội suy đường cong với bậc q và các
tham số t 0 , t 1 , ., t n hàng i của Q cho hàng i của các điểm điều khiển mong
muốn
, ij 0
( ).
n
id j q d j
(2.16)
Trang 35Một khi tất cả các hàng của các điểm điều khiển được tìm thấy, các điểm điều khiển này, cùng với các vector nút và bậc p và q xác định một B-spline nội
suy mặt cong của bậc ( p , q ) của các điểm dữ liệu đã cho Vì vậy, nội suy mặt cong bằng cách sử dụng B-spline bao gồm ( m +1) + ( n +1) nội suy đường
cong
Các hình 2.1, 2.2 cho thấy tác động của việc di chuyển một điểm dữ liệu Bề
mặt B-spline thu được bằng cách sử dụng sáu hàng ( m = 5) và năm cột ( n = 4)
các điểm dữ liệu với mức độ (3,3) Hình 2.1 hiển thị các nút đường cong và điểm
dữ liệu được đánh dấu bằng một vòng tròn màu vàng chỉ ra điểm cần di chuyển
và trả lại bề mặt tương ứng Sau khi thay đổi vị trí của một điểm dữ liệu, các đường cong màu xanh thay đổi hình dạng của nó và di chuyển gần hơn đến các điểm dữ liệu bên cạnh Tác động lan truyền vào cuối bên phải sâu hơn một chút
có thể được nhìn thấy đường cong màu đỏ mặc dù các điểm dữ liệu chỉ ra được di chuyển sang bên phải Lưu ý rằng các đường cong màu đỏ cũng thay đổi hình dạng của nó một chút Vì vậy, tác động của thay đổi vị trí của một điểm dữ liệu duy nhất có thể tương tác cho toàn bộ bề mặt, và do đó đây là một phương pháp toàn cục
Hình 2.1: Nút đường cong trước và sau khi di chuyển
Trang 36Hình 2.2: Mặt cong trước và sau khi di chuyển
Mở rộng phương pháp nội suy dữ liệu 3D để xây dựng một bề mặt B-spline
ta cần một tập hợp các điểm điều khiển P i,j sắp xếp trong một bảng và hai vector
nút u và v Phương trình được đưa ra để tính toán các bề mặt:
như các điểm điều khiển Nhưng ta có một bảng thiết lập các điểm dữ liệu Q k,l
với k = 0, 1, …, n và l = 0, 1, …, m Đầu tiên chúng ta cần phải xác định điểm
dữ liệu được đặt trong không gian tham số cho hai vector 𝑢̅k và 𝑣̅ l Để làm như
vậy ta chọn dòng dữ liệu Q k,l
Trang 37Hình 2.3: Điểm dữ liệu để nội suy
Cụ thể là dữ liệu dọc theo trục x (với l cố định không đổi), và tính toán một
vector thông số cho mỗi một trong số họ bằng cách sử dụng công thức của ba phương pháp trên là: phương pháp cách đều nhau, phương pháp Chord-length hoặc phương pháp hướng tâm Ta làm tương tự cho tất cả các trục y và ta có hai bộ vector tham số là: 𝑢̅ l
k và 𝑣̅ k
l Ta có nhiều kết quả nhưng ta chỉ cần chọn một cho mỗi hướng Vì vậy ta tính trung bình nó Tính trung bình 𝑢̅ l
k ta nhận được vector tham số 𝑢̅ k:
0
11
m l
k ví dụ sẽ bằng và trung bình sẽ được như vậy Sau khi ta nhận được các tham số, ta có thể tính trung bình nó để có được các vector nút, thế vào công thức (2.19) cho cả hai 𝑢̅ k và 𝑣̅ l Các bước cuối cùng là đặt tất cả các hạn chế (các điểm dữ liệu) lên trên
bề mặt của nó và giải hệ phương trình tuyến tính