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

B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH

60 1,5K 1

Đ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 60
Dung lượng 1,55 MB

Nội dung

Trong đó tập trung chủ yếu đến các lý thuyết về đường cong, mặt cong và các phép biến đổi tọa độ.. Bên cạnh đó, đề tài cũng đã tổng hợp được các kết quả nghiên cứu cơ bản của hình học vi

Trang 1

ép\\

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CNTT&TT

Nguyễn Thanh Hải

B-SPLINE VÀ ỨNG DỤNG TRONG ĐỒ HỌA MÁY TÍNH

Chuyên ngành: Khoa học máy tính

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 Đặng Quang Á

Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

Trang 3

MỤC LỤC

MỞ ĐẦU 1

1 Đặt vấn đề 1

2 Đối tượng và phạm vi nghiên cứu 1

3 Hướng nghiên cứu của đề tài 1

4 Những nội dung nghiên cứu chính 2

5 Phương pháp nghiên cứu 2

6 Ý nghĩa khoa học của đề tài 2

Chương 1 Lý thuyết mô hình hóa hình học 3

1.1 Cơ sở của mô hình hóa hình học 3

1.1.1 Các phép biến đổi tọa độ 2D 3

1.1.2 Phép biến đổi đồng nhất 4

1.1.3 Các phép biến đổi tọa độ 3D 4

1.1.4 Phép ánh xạ 6

1.1.5 Khung tọa độ 8

1.2 Đường cong – Curve 9

1.3 Mặt cong - Surface 13

1.3.1 Biểu diễn mặt cong 13

1.3.2 Mô hình hóa các mặt cong 14

Chương 2 Đường cong, mặt cong B-Spline 16

2.1 Thuật toán Casteljau 16

2.2 Đường cong và mặt cong Bezier 18

2.2.1 Đường cong Bezier 19

2.2.2 Mặt cong Bezier 23

2.3 Đường cong B-Spline 25

2.3.1 Đánh giá đường cong Bezier 25

2.3.2 Đường cong B-Spline 27

Trang 4

2.3.2.1 Hàm cơ sở B-Spline 27

2.3.2.2 Tính chất của đường cong B-Spline 29

2.3.2.3 Đường cong B-Spline đều và tuần hoàn 30

2.3.2.4 Đường cong B-Spline không tuần hoàn 32

2.3.2.5 Đường cong B-Spline hữu tỷ không đều 32

2.4 Mặt cong B-Spline 34

Chương 3 Ứng dụng B-Spline mô hình hóa các vật thể 3D 35

3.1 Bài toán mô hình hóa các vật thể 3D 35

3.2 Phép nội suy và mịn hóa đường cong 36

3.2.1 Nối điểm một chiều 37

3.2.2 Xấp xỉ hóa hai chiều 38

3.3 Tìm điểm kiểm soát cho đường cong B-Spline 38

3.4 Vẽ một số đối tượng 3D 39

3.4.1 Vẽ quả táo 39

3.4.2 Vẽ lọ hoa 44

3.4.3 Vẽ máy bay 46

3.4.4 Giao diện chương trình chính 50

KẾT LUẬN 51

TÀI LIỆU THAM KHẢO 52

Trang 5

DANH SÁCH HÌNH VẼ

Hình 1.1: Phép biến đổi tọa độ 2D 3

Hình 1.2: Phép biến đối tọa độ dưới hình thức hệ tọa độ chuyển động 9

Hình 1.3: Biểu diễn đường tròn đơn vị 11

Hình 1.4: Mô hình bề mặt kẻ 14

Hình 1.5 Mô hình mặt tròn xoay 15

Hình 1.6: Mô hình mặt trượt 15

Hình 2.1: Thuật toán Casteljau cho ba điểm 17

Hình 2.2: Đường cong Bezier bậc 1, 2, 3 20

Hình 2.3: Mặt cong Bezier 25

Hình 2.4: Các thành phần của đa thức riêng phần 26

Hình 2.5: Đường cong B-Spline 29

Hình 2.6: Mặt cong B-Spline 34

Hình 3.1 Phép nối điểm và mịn hóa đường cong 37

Hình 3.2 Xác định đa giác kiểm soát của đường cong B-Spline qua một số điểm đã biết nằm trên đường cong 38

Hình 3.3: Biểu diễn quả táo 44

Hình 3.4: Biểu diễn lọ hoa 45

Hình 3.5: Biểu diễn máy bay 49

Hình 3.6: Giao diện chương trình chính 50

Trang 6

DANH SÁCH CÁC BẢNG

Bảng 1.1: Phép quay 3D quanh các trục tọa độ 5 Bảng 2.1: Vector nút đều 31 Bảng 2.2: Vector nút của đường cong B-Spline bậc 2,3,4 không tuần hoàn 32

Trang 7

LỜI CẢM ƠN

Với những tình cảm chân thành, tôi xin bày tỏ lòng biết ơn sâu sắc đến Ban giám hiệu cùng các thầy cô giáo trường Đại học Công nghệ thông tin và Truyền thông – Đại học Thái Nguyên, toàn thể các thầy giáo, cô giáo tại Viện Công nghệ thông tin – Viện Khoa học và Công nghệ Việt Nam đã nhiệt tình giảng dạy, giúp đỡ tôi trong quá trình học tập, nghiên cứu

Qua đây tôi cũng xin gửi lời cảm ơn bạn bè, đồng nghiệp đã động viên, giúp đỡ và tạo điều kiện thuân lợi cho tôi trong thời gian học tập và nghiên cứu để hoàn thành luận văn

Đặc biệt, tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS TS Đặng Quang Á

đã trực tiếp tận tình hướng dẫn, giúp đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành luận văn này

Mặc dù cũng có nhiều cố gắng, nhưng trong luận văn này cũng khó tránh khỏi những thiếu sót, khiếm khuyết Kính mong sự góp ý, chỉ bảo của quý thầy, cô và các bạn

Xin chân trọng cảm ơn Thái Nguyên, tháng 9 năm 2011

Tác giả

Nguyễn Thanh Hải

Trang 8

MỞ ĐẦU

1 Đặt vấn đề

Công nghệ thông tin ngày càng phát triển và đồ họa máy tính là một lĩnh vực công nghệ phát triển rất nhanh Đồ họa đã được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau từ khoa học, công nghệ, y tế, kỹ thuật đến giải trí

Đồ họa máy tính phát triển dựa trên các kết quả của hình học họa hình, hình học vi phân cùng với nhiều kết quả toán học khác đặc biệt bao gồm đại

số và giải tích Hiện nay, với sự phát triển của phần cứng máy tính, đồ họa cũng phát triển nhanh hơn, tuy vậy nền tảng của nó vẫn là cơ sở mô hình hóa hình học Có nhiều bài toán đặt ra trong đồ họa máy tính Một trong những bài toán cơ bản của nó là xử lý các đường cong và mặt cong

B-Splines là một dạng đường cong và mặt cong trong mô hình hóa hình học đã được nhiều tác giả trên thế giới nghiên cứu

Đề tài này tìm hiểu về B-Splines, từ đó đưa ra một ứng dụng trong đồ họa máy tính, cụ thể là ứng dụng trong bài toán mô hình hóa vật thể 3D

2 Đối tượng và phạm vi nghiên cứu

 Đối tượng: Cơ sở mô hình hóa hình học, Splines, Ứng dụng Splines trong đồ họa

B- Phạm vi: Đề tài tập trung tìm hiểu lý thuyết về B-Splines của mô hình hóa hình học

3 Hướng nghiên cứu của đề tài

 Tổng hợp một số kết quả cơ bản của hình học vi phân và phép biến đổi hình học sử dụng trong mô hình hóa hình học Trong đó tập trung chủ yếu đến các lý thuyết về đường cong, mặt cong và các phép biến đổi tọa độ

 Tìm hiểu lý thuyết mô hình hóa các thực thể hình học bao gồm đường cong và mặt cong

Trang 9

 Tìm hiểu lý thuyết B-Splines

 Từ những kết quả lý thuyết B-Splines, ứng dụng vào bài toán mô hình hóa vật thể 3D

4 Những nội dung nghiên cứu chính

 Tìm hiểu những kiến thức tổng quan về mô hình hóa hình học

 Tìm hiểu lý thuyết về đường cong B-Splines, mặt cong B-Splines

 Ứng dụng B-Splines vào bài toán mô hình hóa vật thể 3D

5 Phương pháp nghiên cứu

 Phương pháp chuyên gia: Tham khảo ý kiến của các thầy cô trong lĩnh vực đồ họa, đảm bảo toán học cho máy tính và hệ thống tính toán và các lĩnh vực có liên quan

 Thu thập, nghiên cứu tài liệu từ các giáo trình, bài báo, tạp chí, bài giảng

 Phương pháp thực nghiệm: Cài đặt ứng dụng bằng ngôn ngữ MATLAB

6 Ý nghĩa khoa học của đề tài

Kết quả nghiên cứu của đề tài là đưa ra 1 ứng dụng cụ thể của B-Splines trong bài toán mô hình hóa vật thể 3D Bên cạnh đó, đề tài cũng đã tổng hợp được các kết quả nghiên cứu cơ bản của hình học vi phân và phép biến đổi hình học sử dụng trong mô hình hóa hình học, đặc biệt là các kết quả về B-Splines

Trang 10

Chương 1

Lý thuyết mô hình hóa hình học Chương này dành trình bày về: Các kết quả cơ bản của hình học vi

phân và phép biến đổi hình học sử dụng trong mô hình hóa hình học Lý

thuyết về đường mặt cong và các phép biến đổi tọa độ trong không gian 3D

1.1 Cơ sở của mô hình hóa hình học

1.1.1 Các phép biến đổi tọa độ 2D

Tất cả các phép biến hình trong ĐHMT và mô hình hóa hình học đều dựa trên 3 hình thức biến đổi tọa độ cơ bản là dịch chuyển tịnh tiến, lấy tỷ lệ

và quay [5]

Xét điểm P'(x', y') là vị trí của điểm P(x, y) sau phép biến đổi tọa độ Tọa

độ (x', y') của điểm P' tương ứng với vector dịch chuyển t(tx, ty) (Hình 1.1a),

hệ số tỷ lệ s(sx, sy) (Hình 1.1b); góc xoay θ ngược chiều quay kim đồng hồ (Hình 1.1c) được xác định như sau:

Hình 1.1: Phép biến đổi tọa độ 2D a

Trang 11

Mối quan hệ (1.4) dựa trên thực tế, nếu tọa độ Đề-các của điểm P được nhân với hệ số h, điểm P sẽ được di chuyển tới vị trí mới P'(x',y',z') theo phép lấy tỷ lệ với hệ số h

Tổng quát, ta có thể biểu diễn phép biến đổi 2D tuyến tính (1.1), (1.2), (1.3) dưới dạng ma trận bởi vector tọa độ đồng nhất (chuẩn tắc) Ph, P'h và ma trận biến đổi đồng nhất M:

P'h = (x' ý' 1)

Ma trận biến đổi tọa độ M tương ứng với phép dịch chuyển (T), phép lấy

tỷ lệ (S) và phép quay (R) có giá trị như sau:

1.1.3 Các phép biến đổi tọa độ 3D

Phép biến đổi tọa độ 3D là mở rộng của phép biến đổi tọa độ 2D Tọa độ (x', y', z') của điểm P(x, y, z) sau phép biến đổi tọa độ 3D, tương ứng với vector dịch chuyển t(tx, ty, tz); hệ số tỷ lệ s(sx, sy, sz) được xác định như sau:

Trang 12

Quanh t r ục y x' = zsinθ + xcosθ y' = y z' = zcosθ + xsinθ

Quanh t rục z x' = xcosθ + ysinθ y' = xsinθ + ycosθ z' = z

Bảng 1.1: Phép quay 3D quanh các trục tọa độ Khi đó ma trận biến đổi đồng nhất R đối với phép quay 3D có giá trị như sau (đặt s = sinθ; c = cosθ;):

Trang 13

Tổng quát, ta có thể biểu diễn phép biến đổi tọa độ 3D (chỉ gồm phép dịch chuyển t và phép quay cơ bản R) bởi ma trận biến đổi đồng nhất H như sau:

𝑅∗ =

𝑟11 𝑟12 𝑟13

𝑟21 𝑟22 𝑟23

𝑟31 𝑟32 𝑟33 Hoặc ta có thể viết:

Có thể thấy rằng ma trận xoay R trong công thức (1.11) là ma trận trực giao,

ta định nghĩa các vector hàng của R:

𝑟1

= (r11 r12 r13); 𝑟 = (r2 21 r22 r23); 𝑟 = (r3 31 r32 r33) (1.14) Thì thành phần của các vector này chính là cosin chỉ hướng của vector đơn vị

i, j, k trong hệ trục tọa độ Oxyz và thỏa điều kiện tích có hướng của 2 vector này sẽ là vector kia, cụ thể ta có:

𝑟 , 𝑟1 = 𝑟2 ; 𝑟3 , 𝑟2 = 𝑟3 ; 𝑟1 , 𝑟3 = 𝑟1 ; 2 (1.15)

Và ta còn có:

𝑟 = 𝑟1 = 𝑟2 = 1 3

1.1.4 Phép ánh xạ

Ở các phần trên ta đã xét các phép biến đổi tọa độ trong cùng một hệ tọa

độ mà hoàn toàn không có sự thay đổi hệ tọa độ tham chiếu về vị trí cũng như phương chiều Trong phần này ta sẽ xét tới phép ánh xạ đối tượng hình học giữa 2 hệ tọa độ khác nhau

Trang 14

Phép ánh xạ đối tượng hình học từ một hệ tọa độ sang hệ tọa độ thứ hai được định nghĩa như sự thay đổi mô tả đối tượng hình học từ hệ tọa độ thứ nhất sang hệ tọa độ thứ hai Do đó, không có sự thay đổi về vị trí và phương chiều của đối tượng hình học so với cả 2 hệ tọa độ

Phép ánh xạ tương đương với phép biến đổi hệ tọa độ thứ nhất sang hệ tọa độ thứ hai và được sử dụng rất phổ biến trong thiết kế đồ họa

Thông thường, người ta sử dụng định nghĩa hệ tọa độ làm việc (còn

được gọi là hệ tọa độ địa phương hay hệ tọa độ đối tượng) gắn liền với đối tượng thiết kế để đơn giản hoa việc thiết lập và nhập dữ liệu hình học

Phần mềm thiết kế sẽ ánh xạ (chuyển đổi) tọa độ được đo trong hệ tọa độ

làm việc sang hệ tọa độ hệ thống trước khi lưu trữ trong hệ cơ sở dữ liệu hệ

thống

Phép ánh xạ đóng vai trò quan trọng đối với cấu trục lắp ghép, khi mỗi đối tượng (chi tiết hay bộ phận) được định nghĩa theo hệ tọa độ hệ thống riêng

và chúng cần được kết nối và quản lý trong hệ tọa độ hệ thống chủ

Ví dụ 1.2: Ta có thể đặt bài toán ánh xạ điểm từ một hệ tọa độ sang hệ

tọa độ thứ hai như sau: Cho trước tọa độ của điểm P xác định theo hệ tọa độ (X, Y, Z), ta sẽ xác định tọa độ của điểm P theo hệ tọa độ (X', Y', Z'), sao cho thỏa mãn điều kiện:

P' = f(P, thông số ánh xạ) hay P' = P.H

trong đó:

P: Vector vị trí của điểm P theo hệ tọa độ (X, Y, Z)

P': Vector vị trí của điểm P theo hệ tọa độ (X', Y', Z')

H : Ma trận ánh xạ trong công thức (1.12) mô tả vị trí tương đối của hệ tọa độ (X, Y, Z) so với hệ tọa độ (X', Y', Z')

Trang 15

1.1.5 Khung tọa độ

Phần trên đây ta đã đề cập tới phép ánh xạ như sự thay đổi mô tả đối tượng hình học từ một hệ tọa độ sang hệ tọa độ thứ hai Tiếp theo ta sẽ đề cập đến phép ánh xạ như sự thay đổi hệ tọa độ

Có thể mô tả phép biến đổi tọa độ (1.12) dưới hình thức hệ tọa độ chuyển động (Hình 1.2) Cho ih, jh và kh là các vector chỉ hướng đồng nhất của hệ tọa độ tham chiếu:

P'h = (0 0 0 1) H = (tx ty tz 1) = (t 1) (1.18)

Vì lý do này, người ta gọi ma trận biến đổi đồng nhất H là khung tọa độ

Như vậy, phép biến đổi (1.12) chính là phép ánh xạ từ hệ tọa độ làm việc

(hệ tọa độ địa phương hay hệ tọa độ chuyển động) sang hệ tọa độ hệ thống (hệ tọa độ cố định)

Trang 16

Hình 1.2: Phép biến đối tọa độ dưới hình thức hệ tọa độ chuyển động

1.2 Đường cong – Curve

Trong các ứng dụng của ĐHMT, hầu như các thực thể là đường cong và mặt cong Các thực thể này được dùng để mô tả các vật thể trong thế giới thực như nhà cửa, đồi núi, phương tiện đi lại…hay để xây dựng các thực thể đang được thiết kế Nếu chỉ sử dụng các phương trình đường cong sẽ không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế, ngược lại nếu dùng tập hợp các điểm thì thường cần phải dùng nhiều dung lượng nhớ để lưu trữ cũng như tốc độ tính toán

Ta có quỹ đạo chuyển động của một chất điểm trong không gian có thể tạo thành đường thẳng hoặc đường cong Về mặt trực quan, người ta định nghĩa đường cong như là quỹ đạo điểm thỏa mãn một số điều kiện nào đó Qua hai điểm có thể vẽ được một đường thẳng Qua ba điểm có thể vẽ được một đường cong trong mặt phẳng Qua bốn điểm có thể vẽ được một đường cong trong không gian Nếu ta dùng các phương trình đường cong như

t

r

P

𝑟1

𝑟2

𝑟3

Trang 17

Hypebol, Parabol, Elip thì việc tính toán có thể phức tạp và không thể hiện được hình ảnh thực hay ý tưởng đa dạng của người thiết kế

Vấn đề đặt ra là chọn đường cong như thế nào để phù hợp với việc biểu diễn trong máy tính?

Trong ĐHMT khi 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ó người ta sử dụng một tập hợp các điểm cho trước gọi là tập các điểm điều khiển (control points) Giả sử ta dùng n+1 điểm điều khiển P0, P1, P2, , Pn, khi đó một đường cong C được tạo ra theo một trong hai cách sau:

 Nội suy các điểm điều khiển: Đường cong C được bắt đầu tại điểm P0

và đi qua các điểm điều khiển trung gian theo thứ tự P0, P1, P2, , Pn C kết thúc tại Pn

 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

Đường cong là các đối tượng cơ bản thường là kết quả của tiến trình thiết kế và các điểm điều khiển đóng vai trò là công cụ để kiểm soát và mô hình hoá đường cong Cách tiếp cận này là cơ sở của lĩnh vực thiết kế mô hình hình học nhờ máy tính (Computer Aided Geometric Design, viết tắt là CAGD)

Về mặt toán học, đường cong được biểu diễn dưới các dạng:

Trang 18

Ví dụ 1.3: Xét đường tròn đơn vị (O, 1) trên mặt phẳng Oxy, có tâm trùng với gốc hệ toa độ như trên Hình 1.3 Mối quan hệ giữa các tọa độ x và y được mô tả bởi phương trình ẩn:

x = x(θ) = cosθ ; y = y ( θ ) = sinθ

Giả sử Q cũng là một điểm thuộc đường tròn, gọi góc tạo bởi PQ với trục Ox là 𝛼 Khi đó đặt:

t = tg𝛼 = y/(x+1) Kết hợp với phương trình (2.1) ta có:

Trang 19

Mặc dù về mặt lý thuyết có thể sử dụng phương trình toán học bất kỳ để biểu diễn đường cong, nhưng mô hình toán học dưới dạng đa thức được sử dụng phổ biến nhất do có đặc tính dễ dàng xử lý, đủ linh hoạt để mô tả phần lớn các loại đường cong sử dụng trong kỹ thuật

Mỗi đường cong có các đặc tính đó là: Độ chảy, Vector tiếp tuyến đơn

vị, Vector pháp tuyến chính, Độ cong và bán kính cong [5]

Xét đường cong được biểu diễn bằng phương trình tham số chuẩn tắc:

Độ chảy của đường cong không phải là đặc tính riêng của đường cong, đó là kết quả của phép tham số hóa

Vectơ tiếp tuyến đơn vị: Cho s là tham số tự nhiên của đường cong r(t),

sao cho:

𝑠 = |𝒓’(𝒕)|𝒅𝒕𝜃

0Vectơ tiếp tuyến đơn vị của đường cong r(t) được định nghĩa như sau:

T = dr/ds hay dưới dạng vi phân: T = r’(t)/ |r’(t) |

Vectơ pháp tuyến chính: Lấy đạo hàm vectơ tiếp tuyến đơn vị T theo t

và chuẩn hóa giá trị, chúng ta có vectơ đơn vị N, được gọi là vectơ pháp tuyến chính của đường cong:

Trang 20

N = (dT/dt)/ |𝒅𝑻/𝒅𝒕| ≡(dT/ds)/ |𝒅𝑻/𝒅𝒔|

Vì T là vectơ đơn vị (T.T=1), do đó vectơ N vuông góc với vectơ T Mặt phẳng định nghĩa bởi vectơ T và N được gọi là mặt phẳng mật tiếp Vectơ B vuông góc với vectơ N và T được gọi là vectơ pháp tuyến đôi xác định bởi quan hệ: B = TxN

Độ cong và bán kính cong: Cho s là tham số tự hiên và T là vectơ tiếp

tuyến đơn vị của đường cong r(t) Độ cong được định nghĩa như sau:

k = |𝒅𝑻/𝒅𝒔|

Xét đường tròn trên mặt phẳng mật tiếp đi qua điểm hiện thời r(t) và độ cong của nó bằng chính độ cong của đường cong tại điểm này Đường tròn này được gọi là đường tròn mật tiếp, bán kính của đường tròn mật tiếp được gọi là bán kính cong và được xác định bởi:

𝑘

1.3 Mặt cong - Surface

1.3.1 Biểu diễn mặt cong

Mặt cong được định nghĩa trực quan là quỹ đạo chuyển động của một đường cong tạo nên

Theo hình học vi phân, mặt cong được định nghĩa như là ảnh của phép ánh xạ tập hợp điểm trong không gian 2D vào không gian 3D và được biểu diễn bởi phương trình:

x = x(u, v) với u, v ∈ [0, 1]

y = y(u, v)

z = z(u, v)

Trong đó u, v, w là tham số của mặt cong

Để biểu diễn phương trình tham biến cho mặt cong ta có thể:

Trang 21

 Dựa vào việc xây dựng và tạo bề mặt toán học từ các điểm dữ liệu điều khiển

 Dựa vào việc xây dựng nên bề mặt phụ thuộc vào biến số có khả năng thay đổi một cách trực diện thông qua các tương tác đồ hoạ

Ta cũng có thể biểu diễn theo mảnh tam giác (Triangular Patches) hoặc

tứ giác (Quadrilatera Patches)

1.3.2 Mô hình hóa các mặt cong

a Mặt kẻ - Ruled Surface

Mặt kẻ được xây dựng bằng cách cho trượt một đoạn thẳng trên hai đường cong Hai đường cong này gọi là đường cong biên Các mặt kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai biên đối diện của mặt kẻ P1(u) và P2(u)

Hình 1.4: Mô hình bề mặt kẻ

Ta có phương trình mặt kẻ:

S(u,v) = P2(u)v + P1(u)(1-v)

Nếu hai đường cong cho trước tương ứng là P1(v) và P2(v)

Thì mặt kẻ có phương trình:

Trang 22

𝑄 𝑢, 𝑣 = 𝑃1 𝑣 1 − 𝑢 + 𝑃2 𝑣 𝑢 = [ 1 − 𝑢 ] 𝑃1 (𝑣)

b Mặt tròn xoay - Revolution surface

Hình 1.5 Mô hình mặt tròn xoay Mặt tròn xoay được xây dựng bởi đường thẳng hay một đường cong phẳng, quanh một trục trong không gian

c Mặt trượt - Sweept Surface

Hình 1.6: Mô hình mặt trượt Mặt trượt là mặt được tạo bằng cách trượt một thực thể theo một đường thẳng hoặc đường cong trong không gian Thực thể đó có thể là một đường thẳng, đa giác, một đường cong…

Trang 23

Chương 2

Đường cong, mặt cong B-Spline

Chương này trình bày về một số loại đường cong và mặt cong trong

không gian 3D, trong đó tập trung vào đường cong và mặt cong B-Spline

2.1 Thuật toán Casteljau

Như đã trình bày trong chương 1, không xét những phương pháp biểu diễn mặt cong và đường cong bởi các công thức toán học tường minh, ở đây

ta sẽ bàn đến các công cụ cho phép chỉ ra các dạng đường và mặt khác nhau dựa trên các dữ liệu Điều này có nghĩa là với một đường cong cho trước mà

ta chưa xác định được công thức toán học của nó thì làm thế nào để có thể nắm bắt được dạng của đường cong đó một cách tương đối chính xác qua việc

sử dụng một tập nhỏ các điểm P0, P1, cùng với một phương pháp nội suy nào đó từ tập điểm này để tạo ra đường cong mong muốn với một độ chính xác cho phép

Có nhiều cách để biểu diễn hay mô tả đường cong cho trước [3], chẳng hạn:

 Lấy một mẫu đường cong chừng vài chục điểm cách nhau tương đối ngắn rồi tìm một hàm toán học và chỉnh hàm này sao cho nó đi qua các điểm này và khớp với đường cong ban đầu Khi đó, ta có được công thức của đường và dùng nó để vẽ lại đường cong

 Dùng một tập các điểm kiểm soát và dùng một thuật toán để xây dựng nên một đường cong của riêng nó dựa trên các điểm này Có thể đường cong ban đầu và đường cong tạo ra không khớp nhau lắm, khi đó ta có thể di chuyển một vài điểm kiểm soát và lúc này thuật toán lại phát sinh một đường cong mới dựa trên tập điểm kiểm soát mới Tiến trình này lặp lại cho đến khi đường cong tạo ra khớp với đường cong ban đầu

Ở đây, ta sẽ tiếp cận vấn đề theo phương pháp thứ hai tức là sử dụng các

Trang 24

điểm kiểm soát để xây dựng đường cong Giả sử một điểm trong không gian được biểu diễn dưới dạng vector tham số p(t) Với các đường cong 2D, C(t) = (x(t), y(t)) và các đường 3D, C(t) = (x(t), y(t), z(t))

Để xây dựng đường cong C(t), ta dựa trên một dãy các điểm cho trước rồi tạo ra giá trị C(t) ứng với mỗi giá trị t nào đó Việc thay đổi các điểm này

sẽ làm thay đổi dạng của đường cong Phương pháp này tạo ra đường cong

dựa trên một dãy các bước nội suy tuyến tính hay nội suy khoảng giữa

(In-Betweening)

* Thuật toán Casteljau: Thuật toán này dựa trên tập các điểm cho trước

để tìm ra các giá trị p(t) khi t thay đổi Lúc này do đường cong được xây dựng phụ thuộc vào tập các điểm cho trước nên khi thay đổi các điểm này đường cong sẽ thay đổi theo Với 3 điểm cho trước P0, P1, P2 ta sẽ xây dựng đường cong từ ba điểm này như Hình 2.1

Hình 2.1: Thuật toán Casteljau cho ba điểm Chọn một giá tri t nào đó trong đoạn [0;1], chia đoạn P0P1 theo tỉ số t ta được điểm P0

Trang 25

Lặp lại bước nội suy tuyến tính như trên với các điểm P01(t) và P11(t) ta được P02

(t). Bằng cách này khi cho t nhận các giá trị khác nhau trong đoạn [0;1], ta sẽ được tập các điểm P0

2(t)

Ta có:

P02(t) = (1 – t)P01(t) + t P11(t) =

= (1 – t)((1 – t)P0 + tP1) + t((1 – t)P1 + tP2) =

= (1 – t)2 P0 + 2t(1 – t)P1 + t2P2 (2.3) Công thức (2.3) là hàm bậc 2 theo tham số t do vậy tập các điểm P02(t)

sẽ tạo thành đường cong Parabol.

* Thuật toán Casteljau cho (n+l) điểm:

Xét tập điểm: P0, P1, P2, …,Pn.Bằng phương pháp nội suy tương tự như đối với trường hợp 3 điểm ở trên, ứng với mỗi t thay đổi trong [0;1] ta sẽ tìm ra được một giá tri P(t) qua n bước Trong đó các điểm ở bước thứ r được tạo ra

từ các điểm ở bước thứ (r-1) theo phương tình sau:

Pi r

Các điểm tạo ra ở bước cuối cùng P0n (t) tạo thành đường cong được gọi là

đường cong Bezier của các điểm P0, P1, P2, …, Pn Các điểm Pi, i =0, l, , n

được gọi là các điểm kiếm soát (điểm điều khiển) hay các điểm Bezier Đa giác tạo bởi các điểm kiểm soát này gọi là đa giác kiếm soát (đa giác điều khiển) hay đa giác Bezier

2.2 Đường cong và mặt cong Bezier

Lí thuyết đường cong và mặt Bezier được phát minh bởi một kĩ sư người Pháp có tên là Pierre Bezier trong quá trình thiết kế mẫu xe ôtô Bezier là nhân viên hãng RENAULT Vào những năm 1970 ông là người đi đầu trong việc ứng dụng máy tính cho việc xây dựng các bề mặt Hệ thống UNISURF

Trang 26

của ông được áp dụng trong thực tế vào năm 1972 được thiết kế và kiểm xe Mezesez hay Renault Điểm mạnh của lí thuyết Bezier là tính dễ dàng và thuận tiện trong việc biểu diễn các đường cong và mặt cong Bezier đã sử dụng đa giác kiểm soát cho đường cong tại những đỉnh của đa giác và tiếp tuyến tại đó

2.2.1 Đường cong Bezier

Giả sử một đường cong Bezier C được tạo ra từ (n+1) điểm kiểm soát P0,

P1, P2, …, Pn Kí hiệu tọa độ của mỗi điểm kiểm soát là Pi(xi, yi, zi) trong đó 0≤ k ≤n Tập hợp các điểm kiểm soát ta gọi là đa giác kiểm soát (control polygon) Khi đó các điểm trên đường cong Bezier C được tính theo công thức [10]:

𝐶 𝑡 = 𝐵𝐸𝑍𝑖,𝑛 𝑡 𝑃𝑖

𝑛 𝑖=0

(2.5)

Trong đó BEZi,n(t) = C(n,i)ti(1 – t)n-i = 𝑛!

𝑘! 𝑛−𝑘 ! ti(1 – t)n-i được gọi là công thức Bernstein bậc n, còn gọi là các hàm trộn (blending function) vì nó tạo ra đường cong bằng cách pha trộn các điểm P0, P1, P2, …, Pn

Để dễ hình dung ta xét trường hợp đơn giản nhất khi chỉ có 2 điểm kiểm soát P0 và P1, khi đó các điểm thuộc đường cong C được xác định bởi công thức:

C(t) = BEZ0,1.P0 + BEZ1,1.P1 = (1 - t)P0 + tP1, (0≤ t ≤1) (2.6) Đường cong C đi qua 2 điểm P0 và P1lúc này chính là đoạn thẳng P0P1 như trong Hình 2.2a Ta thấy C(t) là tuyến tính theo tham số t và ta gọi đó là đường cong Bezier bậc 1

Trường hợp có 3 điểm kiểm soát P0, P1, P2 như trong Hình 2.2b, ta có:

BEZ0,2 = (1 - t)2 BEZ1,2 = 2t(1 – t)

Trang 27

BEZ2,2 = t2Khi đó phương trình của đường cong C là:

C(t) = (1 – t)2P0 + 2t(1-t)P1 + t2P2 (2.7)

Hình 2.2: Đường cong Bezier bậc 1, 2, 3 C(t) trong công thức (2.7) lúc này được gọi là đường cong Bezier bậc 2 Công thức trên còn được xây dựng một cách tuần tự bằng thuật toán Casteljau cho

ba điểm như sau:

 Với mỗi giá trị 0 ≤ t ≤1 ta tính giá trị a(t) giữa hai điểm P0 và P1:

BEZ0,3 = (1 - t)3 BEZ1,3 = 3t(1 - t)2BEZ2,3 = 3t2(1 - t) BEZ3,3 = t3

Trang 28

Khi đó phương trình đường cong Bezier đi qua 4 điểm này là:

C(t) = (1 - t)3P0 + 3t(1 - t)2P1 + 3t2(1 - t)P2 + t3P3 (2.8) Trong công thức (2.8), C(t) là một hàm bậc 3 theo biến t và được gọi là đường cong Bezier bậc 3 Công thức này cũng có thể xây dựng một cách tuần tự bằng thuật toán Casteljau cho 4 điểm

* Dạng biểu diễn ma trận của đường cong Bezier

Để thích hợp cho việc biểu diễn trên máy tính, ta biểu diễn 2 mảng BEZn(t) và

Khi đó theo công thức (2.5) ta có

Các hàm trộn có thể biểu diễn dưới dạng đa thức tổng quát:

BEZi,n = a0 + a1t + a2t2 + + an.tn = (t°, t1, , tn).(a0 ,a1 , ,an) (2.10) Đặt Pow(t) = (t0

, t1, , tn), BEn là ma trận biểu diễn mảng BEZn(t), trong đó mỗi hàng i của ma trận này ứng với các hệ số tương ứng (a0 ,a1 , ,an) của đa thức BEZi,n(t) và tại vị trí (i,j) trong ma trận BEn có giá trị:

Trang 29

*Vẽ đường cong Bezier

Để tạo ra một đường cong Bezier từ một dãy các điểm kiểm soát ta sẽ áp dụng phương pháp lấy mẫu hàm C(t) ở các giá trị cách đều nhau của tham số

t, chẳng hạn có thể lấy ti = i/n, i = 0, l, , n Khi đó ta sẽ được các điểm C(ti)

* Các tính chất của đường cong Bezier

Đường cong Bezier có các tính chất:

 Nội suy được các điểm đầu và cuối: C(0) = P0 và C(1) = Pn

 Tính bất biến Affine: Khi biến đổi một đường cong Bezier, ta không cần biến đổi mọi điểm riêng rẽ trên đường cong mà chỉ cần biến đổi các điểm kiểm soát của đường cong đó rồi sử dụng công thức Bernstein để tái tạo lại đường cong đã được biến đổi

 Tính chất của bao lồi: Đường cong Bezier P(t) không bao giờ đi ra ngoài bao lồi của nó Ở đây, bao lồi của các điểm kiểm soát là tập đỉnh nhỏ nhất chứa tất cả các điểm kiểm soát đó

 Độ chính xác tuyến tính: Đường cong Bezier có thể trở thành một đường thẳng khi tất cả các điểm kiểm soát nằm trên một đường thẳng vì khi đó bao lồi của chúng là một đường thẳng

 Bất kỳ một đường thẳng hay mặt phẳng nào cũng luôn luôn cắt đường cong Bezier ít lần hơn so với cắt đa giác kiểm soát

 Đạo hàm của đường cong Bezier là một đường cong Bezier khác

 Bậc của đường cong Bezier tăng cùng với số điểm kiểm soát, cụ thể đường cong Bezier C(t) với (n+1) điểm kiểm soát là một đa thức bậc n

Trang 30

của t Do đó khi số điểm kiểm soát lớn quá trình tính toán sẽ trở nên phức tạp

2.2.2 Mặt cong Bezier

Ta có thể dùng các hàm trộn Bezier để mô tả và vẽ các mặt cong Đối với các mặt cong, ta biểu diễn chúng dưới dạng tham số qua một hàm vector với 2 tham số là u, v Dạng tổng quát của một mặt cong là [3]:

S(u,v) = (X(u,v),Y(u,v),Z(u,v))

<=> S(u,v) = X(u,v).i + Y(u,v).j + Z(u,v).k (2.14) Khi u, v biến thiên trên một khoảng nào đó thì các hàm X(u,v), Y(u,v) và Z(u,v) thay đổi giá trị, do đó làm cho vị trí của S(u,v) thay đổi trong không gian 3 chiều

Ở đây, ta sẽ không biểu diễn các mặt cong bằng các hàm toán học tường minh mà sẽ biểu diễn chúng qua các điểm kiểm soát Chẳng hạn:

S(u,v) = (l - v).((l - u).P00 + u.P10) + v.((l - u).P01 + u.P11) dùng 4 điểm kiểm soát ở 4 góc là Pij với các hàm trộn là tuyến tính theo u, v

Đường cong Bezier trong không gian 3 chiều có thể được viết dưới dạng

là một hàm của tham số v với K+l điểm kiểm soát tùy thuộc vào tham số u theo một cách nào đó Chẳng hạn:

𝐶 𝑢, 𝑣 = 𝑃𝑖 𝑢 𝐵𝐸𝑍𝑖,𝑛 𝑣 (2.15)

𝐾

𝑖=0Nghĩa là mỗi đường viền u là một đường cong Bezier chuẩn, nhưng ở những giá trị u khác nhau thì các điểm kiểm soát cũng nằm ở những vị trí khác nhau [3]

Khi u biến thiên thì mỗi điểm kiểm soát Pi(u) sẽ chạy trên một đường cong cụ thể Do đó, mặt cong có thể xem như là một sự dịch chuyển hay trượt đường Bezier trong không gian

Ngày đăng: 31/07/2014, 01:22

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Phép biến đổi tọa độ 2D a - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 1.1 Phép biến đổi tọa độ 2D a (Trang 10)
Bảng 1.1: Phép quay 3D quanh các trục tọa độ  Khi đó ma trận biến đổi đồng nhất R đối với phép quay 3D có giá trị như  sau (đặt s = sinθ; c = cosθ;): - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Bảng 1.1 Phép quay 3D quanh các trục tọa độ Khi đó ma trận biến đổi đồng nhất R đối với phép quay 3D có giá trị như sau (đặt s = sinθ; c = cosθ;): (Trang 12)
Hình 1.2: Phép biến đối tọa độ dưới hình thức hệ tọa độ chuyển động - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 1.2 Phép biến đối tọa độ dưới hình thức hệ tọa độ chuyển động (Trang 16)
Hình 1.3: Biểu diễn đường tròn đơn vị  Giả  sử  P(x,y)  là  một  điểm  nằm  trên  đường  tròn  (O,  1) - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 1.3 Biểu diễn đường tròn đơn vị Giả sử P(x,y) là một điểm nằm trên đường tròn (O, 1) (Trang 18)
Hình 1.4: Mô hình bề mặt kẻ - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 1.4 Mô hình bề mặt kẻ (Trang 21)
Hình 1.6: Mô hình mặt trượt  Mặt trượt là mặt được tạo bằng cách trượt một thực thể theo một đường  thẳng  hoặc  đường  cong trong  không  gian - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 1.6 Mô hình mặt trượt Mặt trượt là mặt được tạo bằng cách trượt một thực thể theo một đường thẳng hoặc đường cong trong không gian (Trang 22)
Hình 2.3: Mặt cong Bezier - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 2.3 Mặt cong Bezier (Trang 32)
Hình 2.4: Các thành phần của đa thức riêng phần  Các điểm mà tại đó, các đoạn đường cong gặp nhau được gọi là các điểm nối  (joints) - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 2.4 Các thành phần của đa thức riêng phần Các điểm mà tại đó, các đoạn đường cong gặp nhau được gọi là các điểm nối (joints) (Trang 33)
Bảng 2.2: Vector nút của đường cong B-Spline bậc 2,3,4 không tuần hoàn  Các vector nút không tuần hoàn cung cấp các hàm cơ sở được định nghĩa  trong một miền tham số phức tạp - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Bảng 2.2 Vector nút của đường cong B-Spline bậc 2,3,4 không tuần hoàn Các vector nút không tuần hoàn cung cấp các hàm cơ sở được định nghĩa trong một miền tham số phức tạp (Trang 39)
Hình 2.6: Mặt cong B-Spline   Thông thường để thiết kế, người ta vẫn dùng các B-Spline cấp 4 (tức là - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 2.6 Mặt cong B-Spline Thông thường để thiết kế, người ta vẫn dùng các B-Spline cấp 4 (tức là (Trang 41)
Hình 3.1 Phép nối điểm và mịn hóa đường cong - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 3.1 Phép nối điểm và mịn hóa đường cong (Trang 44)
Hình 3.2 Xác định đa giác kiểm soát của đường cong B-Spline qua một số - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 3.2 Xác định đa giác kiểm soát của đường cong B-Spline qua một số (Trang 45)
Hình 3.3: Biểu diễn quả táo - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 3.3 Biểu diễn quả táo (Trang 51)
Hình 3.4: Biểu diễn lọ hoa - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 3.4 Biểu diễn lọ hoa (Trang 52)
Hình 3.6 sau đây là giao diện chương trình ứng dụng B-Spline xây  dựng các đường cong, mặt cong và một số vật thể 3D - B SPLINE và ỨNG DỤNG TRONG đồ họa máy TÍNH
Hình 3.6 sau đây là giao diện chương trình ứng dụng B-Spline xây dựng các đường cong, mặt cong và một số vật thể 3D (Trang 57)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w