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

B splines và ứng dụng trong đồ họa máy tính

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 (1.63 MB, 60 trang )

..

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT&TT

ép\\

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
Mã số: 60 48 01

LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: PGS. TS. ĐẶNG QUANG Á

Thái Nguyên - 2011
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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ố.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên






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
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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 hồn ................................ 30
2.3.2.4. Đường cong B-Spline khơng tuần hồ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 tố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 số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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





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 tố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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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 hồn .. 32

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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 Ngun, tồ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 q 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 q trình nghiên cứu và
hồ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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





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 tốn đặt ra trong đồ họa máy tính. Một trong những
bài tố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 tố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, B-Splines, Ứng dụng BSplines trong đồ họa.
 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.


1
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




 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 tố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 tố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 tốn học cho máy tính và hệ thống tính tố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 tố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ề BSplines.

2
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





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:
x' = x + tx;

y' = y + ty

(1.1)

x' = sxx;

y' = syy

(1.2)

x' = xcosθ – ysinθ;


y' = xsinθ + ycosθ

(1.3)

y

y

y



P (x’,y’)

P’(x’,y’)


P (x’,y’)

r

ty

P(x,y)

θ
tx

P(x,y)


o

r

P(x,y)

x

x
o

α

b

a

x

o

c

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

3
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





1.1.2. Phép biến đổi đồng nhất
Biểu diễn điểm dưới dạng tọa độ đồng nhất cho phép đơn giản hóa và
thống nhất hóa việc biểu diễn các phép biến đổi hình học như là phép nhân
ma trận.
Theo tọa độ đồng nhất, điểm trong không gian n chiều được ánh xạ vào
không gian (n+1) chiều.
Ví dụ 1.1: điểm P(x, y , z) trong hệ tọa độ Đề-các 3 chiều được biểu diễn
dưới dạng tọa độ đồng nhất 4 chiều P'(x',y',z',h) theo mối quan hệ:
x = x'/h;

y = y'/h;

z = z'/h

(1.4)

trong đó h ≠0 là hệ số vô hướng.
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 = PhM

(1.5)

trong đó: Ph = (x y 1) ;
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
𝑇= 0
𝑡𝑥

0
1
𝑡𝑦

0
𝑠𝑥
0 ; 𝑆= 0
1
0

0
𝑠𝑦
0

0
𝑐𝑜𝑠𝜃
0 ; 𝑅 = −𝑠𝑖𝑛𝜃
0
1

𝑠𝑖𝑛𝜃
𝑐𝑜𝑠𝜃
0


0
0
1

(1.6)

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:
4
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




x' = x + tx;

y' = y + ty;

z' = z + tz

(1.7)

x' = sx.x ;

y' = sy.y;

z = sz.z


(1.8)

Cũng giống như trường hợp biến đổi 2D, có thể biểu diễn phép dịch
chuyển 3D (1.7) và phép lấy tỷ lệ (1.8) dưới dạng tích ma trận bởi vector tọa
độ đồng nhất Ph, P'h, ma trận biến đổi T và S.
P'h = PhT

(1.9)

P'h = PhS

(1.10)

trong đó: Ph = (x y z 1) ;
P'h = (x' y' z 1).
1 0
0 1
𝑇= 0 0
𝑡𝑥 𝑡𝑦

𝑠𝑥 0
0 𝑠𝑦
𝑆=
0 0
0 0

0 0
0 0
1 0 ;
𝑡𝑧 1


0 0
0 0
𝑠𝑧 0
0 1

Đối với phép quay 3D, việc xác định phép quay quanh trục bất kỳ trong
không gian là rất khó, do vậy phép quay quanh trục bất kỳ thường được qui về
các phép quay cơ bản quanh các trục hệ tọa độ như trong Bảng 1.1:
Phép quay cơ bản

X'

Y'

Z'

Quanh trục x

x' = x

y' = ycosθ - zsinθ

z' = ysinθ + zcosθ

Quanh trục y

x' = zsinθ + xcosθ

y' = y


z' = zcosθ + xsinθ

Quanh trụ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θ;):
1 0
𝑅 𝑥, θ = 0 c
0 −s
0 0

0
s
c
0

0
c
0 ; R y, θ = 0
0
s
1

0

0
1
0
0

c s
−s 0
0 0 ; R z, θ = −s c
c
0
0 0
0
1
0 0

0
0
1
0

0
0 (1.11)
0
1

5
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





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:
(x'

y'

z'

1) =

(x

y

z

1).H

(1.12)

Trong đó:
𝑟11
𝑟21
𝐻= 𝑟
31
𝑡𝑥


𝑟12
𝑟22
𝑟32
𝑡𝑦

𝑟13
𝑟23
𝑟33
𝑡𝑧

0
0
=
0
1

0
0
0
1

𝑅∗
𝑡

Với
𝑟11
𝑅∗ = 𝑟21
𝑟31


𝑟12
𝑟22
𝑟32

𝑟13
𝑟23
𝑟33

=

(x

y

Hoặc ta có thể viết:
(x'

y'

z')

z)R* + t

(1.13)

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);

𝑟2 = (r21 r22 r23);


𝑟3 = (r31 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 = 𝑟3 = 1
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à hồn tồ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.
6
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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 tố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').

7
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





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:
ih = (l 0 0 1 ) ;
jh = (0 1 0 1);
kh = (0 0 1 1).
Áp dụng phép biến đổi (1.12) với các vector đồng nhất ta có:
i' h = i h H = ( 1 0 0 1) H = (𝑟1 1)

(1.17a)

j ' h = j h H = ( 0 1 0 1 ) H = ( 𝑟2 l )

(1.17b)

k'h = khH = (0 0 1 1) H = (𝑟3 1)

(1.17c)

Kết quả trên cho thấy rằng các vector 𝑟1 , 𝑟2 , 𝑟3 của ma trận biến đổi
đồng nhất H trở thành vector trục của hệ tọa độ chuyển động (Hình 1.2) biến
đổi theo (1.12). Gốc hệ tọa độ chuyển động được xác định tương tự:
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).

8
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




𝑟1
𝑟2

r
P

z

H

r’

𝑟3

t
r’ = rH

k

y

i

i

j

x

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 tố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ư

9
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





Hypebol, Parabol, Elip ... thì việc tính tố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 tố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 sốt và mơ
hình hố đườ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:
 Phương trình ẩn:
f(x, y, z) = 0
 Phương trình tường minh:
y = f(x), z = g(x)
 Phương trình tham số:
x = x(t), y = y(t), z = z(t) trong đó t ∈ [0; 1].


10
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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:
f ( x , y) = x 2 + y 2 - 1 = 0
Nếu ta chỉ xét phần nửa trên của đường trịn thì ta có phương trình
tường minh biểu diễn là:
y = g(x) = (1 – x2)1/2
y

y

P(x,y)

θ

P(x,y)

𝛼

0

0

x


x

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). Nếu đặt góc θ
giữa đoạn thẳng PO và trục Ox là tham số của đường trịn, ta có phương trình
tham số của đường tròn đơn vị:
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ó:
x = x(t) = (1 - t2)(1 + t2); y = y(t) = 2t/(1 + t2).
Phương trình trên đường gọi là phương trình tham số đa thức hữu tỷ của
đường trịn. Q trình thiết lập phương trình tham số hữu tỷ của đường cong
và mặt cong từ phương trình đa thức ẩn được gọi là tham số hóa.

11
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Mặc dù về mặt lý thuyết có thể sử dụng phương trình tốn học bất kỳ để
biểu diễn đường cong, nhưng mơ hình tố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:

r = r(t) = [x(t), y(t), z(t)]
Độ chảy: Độ lớn của vectơ đạo hàm r’(t) được gọi là độ chảy của đường
cong:
q’(t) = |r’(t)|
Nếu so sánh đường cong là con đường và tham số t tượng trưng cho thời
gian thì khi đó độ chảy của đường cong tương ứng với tốc độ chạy xe. Đại
lượng này được sử dụng trong thuật tốn nội suy hình học theo phương pháp
quét hình. Nếu đặt quãng đường đi được là tham số s, phương trình đường
cong dạng r(s) trở thành phương trình tham số tự nhiên với độ chảy bằng 1.
Độ 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:
𝜃

𝑠=

|𝒓’(𝒕)|𝒅𝒕
0

Vectơ 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:
12
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





N = (dT/dt)/ |𝒅𝑻/𝒅𝒕| ≡(dT/ds)/ |𝒅𝑻/𝒅𝒔|
Vì T là vectơ đơn vị (T.T=1), do đó vectơ N vng 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
vng 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
𝑘

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)
S(u,v,w) = S[x = x(u,v), y=y(u,v), z=z(u,v)]

(1.19)

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ể:

13
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




 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:

14
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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

𝑃1 (𝑣)
𝑃2 (𝑣)

(1.20)

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…

15
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





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 tố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 tố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 tố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 số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 số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

16
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




đ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 (InBetweening).
* 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.
P1

P01(t)

P11(t)
P02(t)
P2

P0


Hình 2.1: Thuật tố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 P01(t), chia P1P2 theo tỉ số t được P11(t). Khi đó theo tính chất điểm chia
đoạn thẳng theo tỉ số t và t ∈ [0;1] nên ta có:
P01(t) = (1 – t)P0 + tP1

(2.1)

P11(t) = (1 – t)P1 + tP2

(2.2)

17
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




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 P02(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:
Pir(t) = (l - t).Pir -1(t) + t.Pi+1r -1(t)

(2.4)

Với r = 0, l,..., n và i = 0, 1,..., n – r, Pi0 = Pi
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 q 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

18
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




×