1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ tái tạo bề mặt b spline với điều kiện ràng buộc

74 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 5,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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

Trang 2

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 hoàn toàn trách nhiệm

Tác giả luận văn

Lê Văn Định

Trang 3

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

Trang 4

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

Trang 5

DANH 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 6

Hì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 8

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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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 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 i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à:

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 ix i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 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 17

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:

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 20

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) € [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 22

Hà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( )uN P0,1 0N 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 24

Hì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 25

N 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 26

Hì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 27

mộ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 28

CHƯƠ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 29

Nộ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 30

Bở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 31

Giả 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 32

1 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 33

b 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 35

Mộ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 36

Hì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 37

Hì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

Ngày đăng: 15/07/2021, 15:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w