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

B splines và ứng dụng trong thiết kế hình học

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.62 MB, 66 trang )

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

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

PHẠM HỒNG QUÂN

B-SPLINES VÀ ỨNG DỤNG TRONG THIẾT KẾ HÌNH HỌC
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên - 2015

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

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

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

PHẠM HỒNG QUÂN

B-SPLINES VÀ ỨNG DỤNG TRONG THIẾT KẾ HÌNH HỌ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Ĩ KHOA HỌC MÁY TÍNH

NGƢỜI HƢỚNG DẪN KHOA HỌC


GS-TS. ĐẶNG QUANG Á

Thái Nguyên - 2015

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

3

MỞ ĐẦU
1. Lý do chọn đề tài
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 và xây dựng một ứng dụng trong bài
toán thiết kế hình học. Đây là việc làm có ý nghĩa khoa học và thực tiễn.
2. Đối tƣợng nghiên cứu
Cơ sở mô hình hóa hình học, Phƣơng pháp sinh đƣờng cong và mặt
cong nhờ các điểm điều khiển, B - splines, Ứng dụng B- splines trong đồ
họa

3. Phạm vi nghiên cứu
Đề tài tập trung tìm hiểu lý thuyết về splines, B-splines và ứng dụng.
4. Nhiệm vụ nghiên cứu
 Tìm hiểu các kiến thức cơ sở về hình học đƣờng cong và mặt cong, các
phép biến đổi tọa độ trong không gian 2D và 3D.
 Tìm hiểu lý thuyết về splines, B-splines sinh đƣờng cong và mặt cong
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

4

 Từ những kết quả lý thuyết B-splines xây dựng ứng dụng cho bài toán
trong thiết kế hình học 2D và 3D.
 Cài đặt thuật toán và ứng dụng.
5. Những nội dung nghiên cứu chính
 Tìm hiểu các kiến thức tổng quan về mô hình hóa hình học.
 Tìm hiểu lý thuyết đƣờng cong B-splines và mặt cong B-splines.
 Tìm hiểu về các bài toán dựng hình.
 Ứng dụng B-splines vào các bài toán mô hình hóa hình học.
6. 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.
7. Ý 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 hình học. 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.

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

5

CHƢƠNG 1. LÝ THUYẾT MÔ HÌNH HÓA HÌNH HỌC
Chƣơng này 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 đƣợc sử dụng trong mô hình hóa hình học. Lý thuyết
về đƣờng cong, mặt cong và các phép biến đổi tọa độ trong không gian 2D,
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 hình học trong không gian 2D và 3D
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 [3].
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)


θ
P(x,y)

tx

o

x

P(x,y)

o

x

o

b

a

r
x

α
c

Hình 1.1: Phép biến đổi tọa độ 2D
Phép biến đổi tọa độ 3D là mở rộng của phép biến đổi tọa độ 2D. Tọa độ

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

6

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

y' = y + ty;

z' = z + tz

(1.4)

x' = sx.x ;

y' = sy.y;

z = sz.z

(1.5)

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.4) và phép lấy tỷ lệ (1.5) 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.6)

P'h = PhS

(1.7)

trong đó:
1
0
T 
0

t x

Ph = (x y z 1) ; P'h = (x' y'
0 0 0
 sx 0

0 s
1 0 0
y
S
0 0
0 1 0 ;


t y t z 1 
0 0

z 1).

0 0
0 0 
sz 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'

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

Quanh trục x

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

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

7

1 0 0 0 
0 c s 0 

R ( x,  )  
0  s c 0 


0 0 0 1 


c
0
R( y,  )  
s

0

0 s
1 0
0 c
0 0

0
0 
0

1

 c s 0 0
s c 0 0

R( z, )  
 0 0 1 0


 0 0 0 1

(1.8)

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.9)

Trong đó :

 r11 r12
r r
21
22
H 
 r31 r32

 t x t y

r13
r23
r33
tz

0 
0 


0 
 
1  


R*
t

0
0 
0

1

với

 r11
R*   r21
 r31

r12
r22
r32

r13 
r23 
r33 

hoặc ta có thể viết nhƣ sau:
(x' y' z' ) = (x y z )R* + t

(1.10)

Có thể thấy rằng ma trận xoay R trong công thức (1.8) là ma trận trực
giao, ta định nghĩa các vector hàng của R:



r1 = (r11 r12 r13)
r2 = (r21 r22 r23)


r3 = (r31 r32

r33)

(1.11)

Thì thành phần của các vector này chính là các 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ó:

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

8

 

 r1 , r2   r3



 


 r2 , r3   r1



 

 r3 , r1   r2



(1.12)

và ta còn có :

  
r1  r2  r3  1
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.13)

trong đó h ≠0 là hệ số vô hƣớng.
Mối quan hệ (1.13) 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.14)

trong đó: Ph = (x y 1) ; P'h = (x' y' 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:

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

9

1 0

T  0 1
t x t y


0


0 ;
1 

 sx
S   0
 0

0
sy
0

0
0  ;
1 

 cos 
R    sin 
 0

sin 
cos 
0

0
0 
1 

(1.15)


1.1.3. 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.9) 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.9)với các vector đồng nhất ta có:
i'h = ihH = (1 0 0 1)H = ( r1 1)


j'h = jhH = (0 1 0 1)H = ( r2



k'h = khH = (0 0 1 1)H = ( r3

(1.16a)
(1.16b)

1)

(1.16c)

1)

  
Kết quả trên đây cho thấy rằng các vector r1 , r2 , r3 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.17)

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.9) 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).

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

10


r1
r
H

P


r2

r’



r3

z
t
r’ = rH
k
y
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.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.
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 hóa việc thiết lập và nhập dữ liệu hình học.


Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

11

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.1: 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.9) mô tả vị trí tƣơng đối của
hệ tọa độ (X, Y, Z) so với hệ tọa độ (X', Y', Z').
1.2. Đƣờng cong
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 đó.

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

12

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ƣ
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:
 Phƣơng trình ẩn:
f(x, y, z) = 0
 Phƣơng trình tƣờng minh:
y = f(x), z = g(x)

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

13

 Phƣơng trình tham số:
x = x(t), y = y(t), z = z(t) trong đó t ∈ [0; 1].
Ví dụ 1.2: 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

α
x

0

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 đó ta đặ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. Quá trình thiết lập phƣơng trình tham số hữu tỷ của đƣờng cong
Số hóa bởi Trung tâm Học liệu - ĐHTN


/>

14

và mặt cong từ phƣơng trình đa thức ẩn đƣợc gọi là tham số hóa.
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 [3].
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 vector đạ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à t là tham số 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 toá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 đó, mà đó là kết quả của phép tham số hóa.
Vector tiếp tuyến đơn vị: Cho s là tham số tự nhiên của đƣờng cong
r(t), sao cho:


s


 r '(t ) dt
0

vector tiếp tuyến đơn vị của đƣờng cong r(t) đƣợc định nghĩa nhƣ sau:
T= dr/ ds hoặc dƣới dạng vi phân: T  r '(t ) / r '(t )
vector pháp tuyến chính: Lấy đạo hàm vector tiếp tuyến đơn vị T theo t
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

15

và chuẩn hóa giá trị, chúng ta có vector đơn vị N, đƣợc gọi là vector pháp
tuyến chính của đƣờng cong:
N  (dT / dt ) / dT / dt  (dT / ds) / dT / ds

Vì T là vector đơn vị (T.T = 1), do đó vector N vuông góc với vector T.
Mặt phẳng địng nghĩa bởi vector T và N đƣợc gọi là mặt phẳng mật tiếp.
Vector B vuông góc với vector N và T đƣợc gọi là vector 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ự nhiên và T là vector tiếp
tuyến đơn vị của đƣờng cong r(t). Độ cong đƣợc định nghĩa nhƣ sau:

k  dT / ds
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
k

1.3. Mặt cong
1.3. 1. Mô hình hóa mặt cong
Mô hình hóa các mặt cong ta có thể xây dựng đƣợc bằng ba cách sau:
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).

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

16

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:
 P (v ) 
Q(u, v)  P1 (v)(1  u )  P2 (v)u  [(1-u)]  1 
 P2 (v) 

(1.18)


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

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

17

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


(1.19)

trong đó: u, v là tham số mặt cong.
để biểu diễn phƣơng trình tham biến cho mặt cong ta có thể:
 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 đ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ó

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

18

khả năng thay đổi một cách trực diện thông qua các tƣơng tác
đồ họa.
Ta cũng có thể dùng mảnh tam giác (Triangular Patches ) hoặc tứ giác
(Quadrilatera Patches) để biểu diễn.
Kết chƣơng:
Ở chƣơng này trình bày một số kiến thức cơ bản đƣờng cong và mặt
cong. Qua đó có cái nhìn và tƣ duy cơ bản về các dạng đƣờng cong và mặt
cong, giúp em định hƣớng rõ hơn về hƣớng nghiên cứu chính của mình sẽ
đƣợc trình bày trong chƣơng tiếp theo.

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

19


CHƢƠNG 2. B-SPLINE TRONG KHÔNG GIAN 2D VÀ 3D
Chƣơng này trình bày về một số đƣờng cong và mặt cong, trong đó chủ
yếu là tìm hiểu về đƣờng cong và mặt cong B-spline.
2.1. Sơ lƣợc về đƣờng cong và mặt cong Bezier
Lý thuyết đƣờng cong và mặt cong 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 của ông đƣợc áp dụng trong thực tế vào năm 1972 đƣợc thiết kế
và kiểm tra 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.1.1. Đƣờng cong Bezier
Giả sử một đƣờng cong Bezier C đƣợc tạo ra từ (n+1) điểm điều khiển P0,
P1, P2,…,Pn. Kí hiệu tọa độ của mỗi điểm điều khiển là Pi(xi,yi,zi) trong đó 0 ≤
i ≤ n. Tập hợp các điểm điều khiển ta gọi là đa giác 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 [3]:
n

C (t )   PB
i i , n (t )

(2.1)

i 0

i

n i
trong đó Bi ,n (t )  C (n, i)t (1  t ) 

n!
t i (1  t ) ni đƣợc gọi là
k !(n  k )!

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 điều
khiển P0 và P1 , khi đó các điểm thuộc đƣờng cong C đƣợc xác định bởi công

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

20

thức:
C(t) = B0,1.P0 + B1,1.P1 = (1 - t)P0 + tP1, (0 ≤ t ≤ 1)

(2.2)

đƣờng cong C đi qua 2 điểm P0 và P1 lúc này chính là đoạn thẳng P0P1
nhƣ trong (hình 2.1a). 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 điều khiển P0, P1, P2 nhƣ trong (Hình 2.1b), ta có :
B0,2 = (1 - t)2
B1,2 = 2t(1 - t)
B2,2 = t2

khi đó phƣơng trình của đƣờng cong C là :
C(t) = (1 - t)2P0 + 2t(1 - t)P1 + t2P2
P1

(2.3)

P1

P2
b(t)
P1

C(t
)

a(t)

P0

P0
a

e(t)

b(t)
c(t)

a(t)
P2


d(t)

c(t)

P0

b

c

a(t)
P3

Hình 2.1 : Đƣờng cong Bezier bậc 1, 2, 3
C(t) trong công thức (2.3) 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 :
a(t) = (1 - t)P0 + tP1
 Tính b(t) giữa hai điểm P1 và P2
b(t) = (1 - t)P1 + tP2
 Cuối cùng tính C(t) giữa hai điểm a(t) và b(t)
C(t) = (1 - t)a(t) + tb(t) = (1 - t)2P0 + 2t(1 - t)P1 + t2P2
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

21

Tƣơng tự nhƣ trên, trong trƣờng hợp có 4 điểm điều khiển P0, P1, P2, P3

nhƣ trong (Hình 2.2c), ta tính đƣợc :
B0,3 = (1 - t)3
B1,3 = 3t(1 - t)2
B2,3 = 3t2(1 - t)
B3,3 = t3
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.4)

trong công thức (2.4), 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
Bn(t) và P nhƣ sau :
Bn(t) = (B0,n(t) , B1,n(t),…,Bn,n(t))
P = (P0, P1, P2,…, Pn)

 P0 
P 
T
P   1
=>
 P2 
 
 P3 

khi đó theo công thức (2.1) ta có:
C(t) = Bn(t).PT

(2.5)

các hàm trộn có thể biểu diễn dƣới dạng đa thức tổng quát :
Bi,n = a0 + a1t + a2t2 + …+ antn = (t0 , t1 , …, tn).(a0 ,a1 ,…an)

(2.6)

Đặt Pow(t) = (t0 , t1 , …, tn), Ben là ma trận biểu diễn mảng Bn(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 Bi,n(t) và tại vị trí (i,j) trong ma trận Ben có giá trị :
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

22

BEn (i, j )  (1) j i Cni Ci j

(2.7)

do đó C(t) có thể viết lại thành :
C(t) = Pow(t).Ben.PT

(2.8)

đối với đƣờng cong Bezier bậc 3 ta có ma trận BE3 là :


1 0 0
 3 3 0
BE3  
 3 6 3

 1 3 3


0
0 
0

1

(2.9)

Vẽ đường cong Bezier

Để tạo ra một đƣờng cong Bezier từ một dãy các điểm điều khiển 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, 1, …, n. Khi đó ta sẽ đƣợc các điểm
C(ti) từ công thức Bezier.
Nối các điểm này bằng các đoạn thẳng ta sẽ đƣợc đƣờng cong Bezier
gần đúng. Để tính C(ti) ta có thể áp dụng ma trận C(t) ở công thức (2.8) trong
đó chỉ có thành phần Pow(ti) là thay đổi, còn tích Ben.PT với P = (P0, P1, P2,…,
Pn) là không đổi [3].


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 đ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 điều khiển 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 điều khiển là
tập đỉnh nhỏ nhất chứa tất cả các điểm điều khiển đó.
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

23

 Độ 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 điều khiển 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 điều khiển, cụ
thể đƣờng cong Bezier C(t) với (n+1) điểm điều khiển là một đa
thức bậc n của t. Do đó khi số điểm điều khiển lớn quá trình tính
toán sẽ trở lên phức tạp.
2.1.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à [4] :
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.10)

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ị, dó đó 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 thông qua các điểm điều khiển. Chẳng
hạn :
S(u, v) = (1 - v).((1 - u).P00 + u.P10) + v.((1 - u).P01 + u.P11) dùng 4 điểm
điều khiển ở 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+1 điểm điều khiển tùy thuộc vào tham
số u theo một cách nào đó. Chẳng hạn :

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

24
K

C (u, v)   Pi (u ) Bi ,n (v)
i 0

(2.11)

nghĩ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 điều khiển cũng nằm ở những vị trí

khác nhau [4].
Khi u biến thiên thì mỗi điểm điều khiển 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.
Ta tƣởng tƣợng một đa giác kiểm soát chuyển động trong không gian và
thay đổi dạng khi chuyển động. Ở mỗi vị trí, đa giác này tạo nên một đƣờng
cong Bezier và do đó tạo thành mặt cong trong quá trình trƣợt. Giả sử ta có
một mảng (n+1)(k+1) phần tử. Các điểm điều khiển Pij, với 0 ≤ i ≤ n, 0 ≤ j ≤ k
gọi là khối đa diện kiểm soát (control polyhedron). Khi đó các điểm trên mặt
cong Bezier S đƣợc tính theo công thức :
n

k

S (u, v)   Pij Bi ,n (u ) B j ,k (v)
i 0 j 0

(2.12)

Ta gọi đây là dạng tích Tensor cho băng Bezier.
Để có mặt cong Bezier từ các đƣờng cong Bezier ta coi mảng
(n+1)(k+1) các điểm điều khiển Pij nhƣ là (n+1) mảng một chiều khác nhau,
mỗi mảng gồm (k+1) điểm điều khiển. Xây dựng đƣờng cong Bezier từ (n+1)
mảng điểm điều khiển đó ta sẽ đƣợc (n+1) đƣờng cong Bezier. Ta ký hiệu
đƣờng cong tƣơng ứng với mảng điểm điều khiển thứ i là Ci, 0 ≤ i ≤ n và
phƣơng trình tham số của Ci là Ci(v), 0 ≤ i ≤ 1.
Nói cách khác với mỗi giá trị 0 ≤ v ≤ 1 ta có (n+1) điểm nằm tƣơng ứng
trên các đƣờng cong Ci, ta ký hiệu tập các điểm đó là {Ci(v)}, i = 0, 1, …, n.
Nếu ta tiếp tục sử dụng (n+1) điểm đó làm đa giác kiểm soát ta sẽ thu đƣợc
một đƣờng cong Bezier. Có thể tƣởng tƣợng rằng khi v tăng từ 0 đến 1 ta sẽ

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

25

thu đƣợc một lƣới các đƣờng cong Bezier, đó chính là mặt cong Bezier nhƣ
minh họa trong (Hình 2.2).
P30

C3(v)

C2(v)

P20

P32

C3

P31

P33
P21

P22

C2

C1(v)


P10

P23
P11

C1

P12

P13

P00
C0(v)
P01

P02

P03

Cn
V

Hình 2.2: Mặt cong Bezier
2.2.

Đƣờng cong B-spline

2.2.1 Hàm cơ sở B-spline
Cho trƣớc một Vector nút T=(t0, ti, …, tz) với ti  R, ti ≤ ti+1, khi đó tồn

tại một họ các hàm trộn sao cho chúng có thể phát sinh ra mọi đƣờng cong
spline đƣợc định nghĩa trên Vector nút đó. Một họ các hàm nhƣ vậy đƣợc gọi
là cơ sở cho Spline, nghĩa là bất kỳ đƣờng cong spline nào cũng có thể đƣợc
đƣa về cùng một công thức bằng cách chọn kiểu đa giác kiểm soát phù hợp.
Với mỗi vector có nhiều họ hàm nhƣ vậy, nhƣng đặc biệt có một họ hàm
trộn có đoạn mang giá trị khác 0 nhỏ nhất đó là Basic Spline (Đƣợc viết tắt là
B-spline). Đối với các hàm B-spline, mỗi đa thức riêng phần tạo ra nó có một
bậc m nào đó. Do đó, thay vì dùng ký hiệu Ri(t) nhƣ trong phƣơng trình
n

đƣờng cong spline: C (t )   PR
cho các hàm từng mẩu này ta sẽ ký
i i (t )
i 0

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

×