Tải bản đầy đủ (.doc) (28 trang)

Xây dựng đường cong Bezier, đường cong Bspline, mảnh mặt cong Bezier và mảnh mặt cong Bspline ứng dụng phần mềm Matlab

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 (209.57 KB, 28 trang )

LỜI NÓI ĐẦU
Hiện nay việc gia công cơ các bề mặt sản phẩm trong công
nghiệp rất đa dạng và phức tạp, vì vậy để thiết kế và mô tả nó
thuận lợi người ta sử dụng các phần mềm máy tính trợ giúp.
Trong đó các phần mềm CAD/CAM đóng vai trò quan trọng
trong việc trợ giúp xây dựng các bề mặt bằng máy tính.
Môn học: "Phương pháp xây dựng bề mặt cho
CAD/CAM" cung cấp cho các học viên các phương pháp xây
dựng bề mặt thường gặp trong sản xuất công nghiệp, trên cơ sở
đó giúp cho học viên hiểu thêm quá trình xây dựng các đường
cong và các mặt phức tạp trong hệ thống CAD/CAM/CNC
Trong quá trình tìm hiểu và học tập môn hoc, tác giả đã
tiến hành làm tiêủ luận để có thức riêng cho bản thân về môn
học và thực hành lập trình sơ bộ cho các biên dạng đường và
mặt cơ bản, bước đầu biết được nguyên lý chung cho quá trình
xây dựng các bề mặt này.
Tiểu luận môn học sau được trình bày làm 2 phần:
- Phần 1. Cơ sở lý thuyết: bao gồm các kiến thức chung
nhất về mô hình toán học và cách xây dựng đường cong Bezier,
1
đường cong B-spline, mảnh mặt cong Bezier và mảnh mặt cong
B-spline.
- Phần 2. Bài tập: Xây dựng đường cong Bezier, đường
cong B-spline, mảnh mặt cong Bezier và mảnh mặt cong B-
spline ứng dụng phần mềm Matlab
Trong quá trình thực hiện tiểu luận, tác giả chân thành cảm
ơn sự giúp đỡ tận tình của thầy giáo hướng dẫn Bộ môn Máy -
Ma sát, Khoa Cơ khí, Đại học Bách khoa Hà nội và các ý kiến
đóng góp của các bạn trong lớp.Trong qua trình làm tác giả
không thể tránh được những thiếu sót, rât mong được sự đóng
góp của thầy cô và các bạn để có thể hoàn thiện tốt hơn.


2
Phần 1. CƠ SỞ LÍ THUYẾT
Để 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.
Để 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á. Khảo sát hàm bậc ba:
r(u) = (x(u), y(u), z(u))
= a + bu + cu
2
+ du
3
Thể hiện dưới dạng ma trận:
( )
[ ]













=
d
c
b
a
uuuur
32
1
(1)
3
Hay r(u) = UA với 0≤u≤1.
Trong đó U là véc tơ cơ sở và A là véc tơ hệ số.
1.1. Mô hình toán học đường cong Berier.
Chúng ta trình bày cách xây dựng đường cong Bezier trên
cơ sở đường cong Ferguson với các điều kiện mút V
0
, V
1
, V
2
, V
3
trong đó:
V
0
- điểm bắt đầu đoạn đường cong, tương ứng với điểm

P
0
.
V
1
- điểm nằm trên véc tơ tiếp tuyến điểm đầu đường cong
và bằng V
0
+ t
0
/3 chỉ ra trên hình 1.
V
2
- điểm nằm trên véc tơ tiếp tuyến điểm cuối đường
cong và bằng V
3
- t
1
/3;
V
3
- Điểm cuối của đoạn cong ứng với đỉnh P
1
.
Điểm cuối của đường cong Bezier với điều kiện mút được
viết như sau:
V
0
= P
0

; V
1
= V
0
+ t
0
/3; V
2
= V
3
- t
1
/3; V
3
= P
1
4
t
r(u)
1
t
0
0
V
P
0
P
V
1
3

1
V
2
V
=
=
V
1
2
V
0
V
V
3
V
0
3
V
1
V
V
2
Hình 1. Ví dụ đường cong Bezier bậc 3
Để có thể dùng phương pháp xây dựng đường cong bậc ba
Ferguson vào xây dựng đường cong Bezier khi biết các điều
kiện mút của nó, chúng ta phải tìm môtis quan hệ giữa điều kiện
mút của đường cong bậc 3 Ferguson P
0
, P
1

, t
0
, t
1
, và điều kiện
mút của đường cong Bezier V
0
, V
1
, V
2
, V
3
có nghĩa là ta phải có:
V
0
= P
0

V
3
= P
1
Xác định t
0
theo V
1
ta nhận được:
V
1

= V
0
+ t
0
/3
3V
1
= 3V
0
- t
0
t
0
= 3(V
1
-V
0
)
Xác định t
1
theo V
2
ta có:
5
V
2
= V
3
- t
1

/3
3V
3
= 3V
2
- t
1
t
1
= 3(V
2
-V
3
)
Kết quả biến đổi ta nhận được hệ phương trình tuyến tính:
V
0
= P
0

V
3
= P
1
t
0
= 3(V
1
-V
0

)
t
1
= 3(V
2
-V
3
)
Thể hiện dưới dạng ma trận:
RL
V
V
V
V
t
t
P
P
S =



























=












=
3

2
1
0
1
0
1
0
3300
0033
1000
0001
(4)
Thay (4) vào (2) ta nhận được đường cong Bezier bậc ba.
r(u) = U C S
= U C L R
(5)
Với 0≤u≤1
6
Đặt M = C L














−−−
==
1122
1233
0100
0001
LCM














3300
0033
1000
0001
=













−−


1331
0363
0033
0001
Và R =













3
2
1
0
V
V
V
V
Phương trình (5) được gọi là phương trình đường cong
Bezier.
Phương trình trên cũng có thể biểu diễn dưới dạng hàm đa
thức:
r(u) = (U M) R
= B
0,3
(u)V
0
+ B
1,3
(u)V
1
+ B
2,3
(u)V
2
+ B
3,3
(u)V
3
=



3
0
3,1
)(
i
i
VuB
trong đó:
B
0,3
(u) = (1-u)
3
B
1,3
(u) = 3u(1-u)
2
7
B
2,3
(u) = 3u
2
(1-u)
B
3,3
(u) = u
3
B
i,3

(u) được gọi là đa thức Bezier bậc 3
Đa thức Bezier tương đương với số hạng trong khai triển
nhị phân (u+v)
n
, với v = 1 - u.
Dạng chung của đa thức Bezier bậc n được viết như sau:
u)-(1u
!)!(
!
(u)B
i-ni
ni,
iin
n

=
Đa thức trên được gọi là hàm cơ sở Bezier dùng để định
nghĩa đường cong Bezier bậc n với n+1 điểm điều khiển.

=
=
n
i
ini
VuBur
0
,
)()(
với 0≤u≤1
Chúng ta có thể tiến hành các phép như là tăng bậc, giảm

bậc hàm Bezier.
Ví dụ: đường cong Berier bậc ba
Chương trình trên Matlab


8


 
 
 




 

!"
!#
"

$ % &'(

)*
!"&!#+!"(,&+(-
9
).*&"(
$ &'*($ &'*(&.'*(,/ "/#  &.'''(
"
"

&$ &*'('$ &*'('&*'('&*'('0+,0'01"20'(
&034"5"5$/#/#0(
5"
Ta sẽ có được biên dạng đường cong Berier bậc ba như sau:
10
1.2. Mô hình toán học đường cong B-spline đồng nhất
Để hiểu được đặc trưng hình học của một đường cong B-
spline bậc 3 cần phải biết cấu trúc hình học của đường cong
này.Giả sử, bốn đỉnh điều khiển của đường cong bậc ba này
được ký hiệu V
0
, V
1
, V
2
, V
3
.Ta định nghĩa như sau:
2
10
0
VV
M
+
=
Là điểm giữa của V
0
và V
1
2

21
1
VV
M
+
=
Là điểm giữa của V
1
và V
2
3
2
01
0
MV
P
+
=
Là điểm nằm ở một phần ba của đoạn thẳng V
1
và M
0
3
2
12
1
MV
P
+
=

Là điểm nằm ở một phần ba của đoạn thẳng V
2
và M
1
Ta xây dựng đoạn cong r(u) thoả mãn điều kiện sau:
- Đoạn cong bắt đầu từ điểm P
0
và điểm cuối là P
1
- Vectơ tiếp tuyến t
0
ở điểm P
0
là bằng ( M
0
-V
0
)
- Vectơ tiếp tuyến t
1
ở điểm P
1
là bằng ( M
1
-V
1
)
Điểm mút P
0
và P

1
của đoạn cong biểu diễn theo các đỉnh điều
khiển như sau:
11
- Điểm đầu P
0
của đoạn cong B-spline r(u) được dánh giá
như sau
o
6
4
3
2
2
3
2
201
10
1
01
0
VVV
vV
V
MV
P
++
=
+
+

=
+
=
Hay
6
)(4
)0(
201
0
VVV
rP
++
==
(1-a)
Đánh giá r(u) tại điểm cuối P
1
ứng với u = 1
6
4
3
2
2
3
2
312
31
2
01
1
VVV

VV
V
MV
P
++
=
+
+
=
+
=
Biểu diễn tại P
1
:
6
)(4
)1(
312
1
VVV
rP
++
==
(1-b)
Ta có
)(
.
0
urt
=

, do đó ta xác định tiếp tuyến t
0
:
22
02
0
20
000
VV
V
VV
VMP

=−
+
=−=
Hay
2
)0(
02
.
0
VV
rt

=≡
(2-a)
Tương tự ta có:
22
13

1
31
111
VV
V
VV
VMP

=−
+
=−=
Hay
2
)1(
13
.
1
VV
rt

=≡
(2-b)
12
Tử các phương trình (1-a), (1-b), (2-a), (2-b) ta có hệ phương
trình tuyến tính
)04(
6
1
2400
+++= VVVP

)40(
6
1
3211
VVVP +++=
)0303(
6
1
200
+++−= VVt
)3030(
6
1
311
VVt ++−=
Chuyển sang dạng ma trận ta được:
KR
V
V
V
V
t
t
P
S =



























=













=
3
2
1
0
1
0
1
0
3030
0303
1410
0141
6
1
P
Thay kết quả tìm được vào đường cong Ferguson ta tìm
được cách biểu diễn đường cong B-spline đồng nhất bậc 3
r(u) =U C S
= U C K R Với 0 ≤ u ≤ 1
= U (C K) R
U = [1 u u
2
u
3
]

C – ma trận hệ số Ferguson
13












−−


=
1331
0363
0303
0141
6
1
N
R = [V
0
V
1
V

2
V
3
]
T

Trong đó N- hệ số đường cong B-spline bậc ba
Đường cong B-spline đồng nhất bậc ba viết dưới dạng biểu thức
đại số như sau:
3
3
2
32
1
32
0
32
)(
66
3331
6
364
6
331
V
u
V
uuu
V
uu

V
uuu
r
u
+
−++
+
−−
+
−−−
=
Đặt:
6
331
)(
32
3,0
uuu
uS
−−−
=
6
364
)(
32
3,1
uu
uS
−−
=

6
3331
)(
32
3,2
uuu
uS
−++
=
6
)(
3
3,3
u
uS =
Đường cong B-spline viết dưới dạng biểu thức đại số:
i
i
ni
VuSur ).()(
3
0
,

=
=
14
Tập phương trình đại số S
i,3
(u) với i = 0,B-spline đồng nhất

bậc ba hay còn gọi là hàm hỗn hợp B-spline.
- Ví dụ: đường cong B-spline bậc 3
)4""/ "&'"(




+6
%
%
%

 

!"
!#
"
15

$ % &'(

)*
!"&!#+!"(,&+(-
).*&"(
$ &'*($ &'*(&.'*(,/ "/#  &.'"''(
"
"
&$ &*'('$ &*'('$ &*'('&*'('&*'('&*'('0+
,0'01"20'(
# &(

&0$+7"/#/#0(
5"
Ta sẽ có một đường B-spline bậc ba như sau:
16
1.3. Mảnh mặt Berier
Bây giờ chúng ta xây dựng mảnh mặt Bezier từ các đường
cong Bezier tương tự như phương pháp hình thành mảnh mặt
Ferguson đã nêu trên. Giả thiết rằng chúng ta có mảng 4x4 đỉnh
điều khiển
{ }
j,i
V
được bố trí như trên hình 4.
17
V
03
V
13
V
23
V
33
V
32
V
22
V
12
V
02

V
01
V
00
V
10
V
11
V
21
V
31
V
30
V
20
v =0
u =0
Hình 4. Mảnh mặt Bezier bậc 3
Các đỉnh điều khiển liên kết với nhau bằng đa thức
Bernstein, mảnh mặt Bezier bậc 3 được xác định như sau:
∑∑
= =
=
3
0
3
0
33
i

)()(Bv)r(u,
i j
ijj
VvBu
∑∑
= =
−−




=
3
0
3
0
33
)1(
!)!3(
!3
)1(
!)!3(
!3
v)r(u,
i j
jjii
vv
jj
uu
ii

(10)
= U M B M
T
V
T
Trong đó: U =
[ ]
32
1 uuu
và V =
[ ]
32
1 vvv
M =












−−


1331

0363
0033
0001
18












=
33323130
23222120
13121110
03020100
VVVV
VVVV
VVVV
VVVV
B
M được gọi là ma trận hệ số Bezier
B là ma trận hệ số điều khiển Bezier.
Phương trình mảnh mặt Bezier tổng quát bậc n và m điều
khiển như sau:

∑∑
= =
=
m
i
n
j
ij
n
j
VvBu
0 0
m
i
)()(Bv)r(u,
(11)
Trong đó:
imim
i
uu
iim
m
uB



= )1(
!)!(
!
)(

jnjn
j
vv
jjn
n
vB



= )1(
!)!(
!
)(
Trong CAD/CAM người ta thường sử dụng mảnh mặt
Bezier bậc m=n=5 hoặc m=n=7. Khi bậc m=n=5 số đỉnh điều
khiển cần thiết là 36.
Chúng ta có thể tiến hành tăng hoặc giảm bậc của phương
trình mảnh mặt tam giác Bezier.
Ví dụ bề mặt Berierbậc 2
19

% &''(
&''*(+
&''*(6
&''*(8

&''*(
&''*(+
&''*(6


&''*(
&''*(
&''*(6

"
!
9"
:  
;:  
20
<% &'(
=% &'(
7% &'(
)5*&(
4&5+(-
)*&(
&+(-
)*&"(
).*&!(
<&5'(<&5'(
&'.'(,/ "/#  &'!'4'(,/ "/#  &.'"'';(
=&5'(=&5'(
&'.'(,/ "/#  &'!'4'(,/ "/#  &.'"'';(
7&5'(7&5'(
&'.'(,/ "/#  &'!'4'(,/ "/#  &.'"'';(
"
"
"
"
21


4)&<'='7'0>5?0'0""0'0@#A#0'(
"
4)&&*'*'('&*'*'('&*'*'('0@#?0'
0""0'01"20':(
&0$!#$%/##0(
1.4. Mảnh mặt B-spline đồng nhất
Mặt B-spline đồng nhất bậc ba của hai biến u và v được
biểu diễn bởi phương trình sau:
22
∑∑
= =
=
3
0
3
0
33
)()(),(
i j
ijji
VuNuNvur
Với 0 ≤ u ≤ 1
= U N B N
T
V
T
Trong đó: U = [ 1 u u
2
u

3
]
V = [ 1 v v
2
v
3
]












=
33323130
23222120
13121110
03020100
VVVV
VVVV
VVVV
VVVV
B













−−


=
1331
0363
0303
0141
6
1
N
6
331
)(
32
3,0
uuu
uN
−−−

=
6
364
)(
32
3,1
uu
uN
−−
=
6
3331
)(
32
3,2
uuu
uN
−++
=
6
)(
3
3,3
u
uN =
Mặt B-spline đồng nhất được thể hiện dưới hình sau:
23
Măt cong B-spline đồng nhất bậc hai được em như là tích
tensor của đường cong B-spline đồng nhất bậc hai r(u) = U N
2

R. Mặt đồng nhất B-spline có thể có bậc của hai biến u và v
khác nhau. Ví dụ mặt B-spline có biến u hoặc biến v bậc hai,
phương trình được biểu diễn như sau:
r(u)= U N B N
2
T
V
T
Với 0 ≤ u ≤ 1
Trong đó:
U = [ 1 u u
2
u
3
]
V = [ 1 v v
2
v
3
]













=
323130
222120
121110
020100
VVV
VVV
VVV
VVV
B
24
V
03
V
13
V
23
V
33
V
32
V
22
V
12
V
02
V

01
V
00
V
10
V
11
V
21
V
31
V
30
V
20
v
u












−−



=
1331
0363
0303
0141
6
1
N











−=
121
022
011
2
N
Ví dụ mảnh mặt B-spline :

#!

% &''(
&''*(
&''*(
&''*(6
&''*(
&''*(+
&''*(+
&''*(8
&''*(
&''*(
25

×