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

BÀI tập đồ 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 (396.87 KB, 15 trang )

Họ tên: Đinh Thị Minh Thu
Lớp: 07CK4
MSSV: 07K4114
BÀI TẬP ĐỒ HỌA
Bài tập số 2
CÁC PHÉP BIẾN ĐỔI
Bài 1: Xây dựng một phép biến đổi (ma trận biến đổi) thỏa mãn:
 Quay một góc 45
o

Ma trận khi quay một góc 45
o

M
Q
=
o o
o o
os45 sin45 0
-sin45 os45 0
0 0 1
c
c
 
 
 
 
 

2 2
0


2 2
2 2
0
2 2
0 0 1
 
 
 
 

 
 
 
 
 
 

 Ma trận Tỉ lệ trục x theo 1.5 và trục y theo -2
M
TL
=
1,5 0 0
0 2 0
0 0 1
 
 

 
 
 


 Ma trận tịnh tiến một đoạn (3,5)

M
TT
=
1 0 0
0 1 0
3 5 1
 
 
 
 
 

 Tìm ảnh của điểm (1,2) qua phép biến đổi trên:
Ma trận biến đổi:
M=M
Q
.M
TL
.M
TT
=
2 2
0
2 2
2 2
0
2 2

0 0 1
 
 
 
 

 
 
 
 
 
 
.
1,5 0 0
0 2 0
0 0 1
 
 

 
 
 
.
1 0 0
0 1 0
3 5 1
 
 
 
 

 

=
3 2
- 2 0
4
3 2
- 2 0
4
0 0 1
 
 
 
 

 
 
 
 
 
 
.
1 0 0
0 1 0
3 5 1
 
 
 
 
 

=
3 2
- 2 0
4
3 2
- 2 0
4
3 5 1
 
 
 
 

 
 
 
 
 
 

Ảnh của điểm P(1,2) ký hiệu là Q
Q=P.M= (1,2,1).
3 2
- 2 0
4
3 2
- 2 0
4
3 5 1
 

 
 
 

 
 
 
 
 
 
= (
3 2
3
4


,
3 2 5
 
,1)
Bài 2:Tìm phép biến đổi ánh xạ một hình vuông A có 4 góc A
1
(0,0), A
2
(2,1), A
3
(0,5), A
4
(-2,4)
thành hình vuông B có 4 góc tương ứng (0,0), (1,0), (1,1), (0,1). Vẽ 2 hình này:









y
α
x
Để biến đổi hình vuông A thành hình vuông B ta phải quay một góc là -α, và lấy tỉ lệ theo trục x

1
2
và tỉ lệ theo trục y là
1
5
. Với tan (-α) =
1
2


α= - 26.57
o
 Ma trận quay một góc α=26.57
o
:
M
Q

=
o o
o o
os(-26.57 ) sin(-26.57 ) 0
-sin(-26.57 ) os(-26.57 ) 0
0 0 1
c
c
 
 
 
 
 
<=>
0.8944 -0.4473 0
0.4473 0.8944 0
0 0 1
 
 
 
 
 

 Ma trận tỉ lệ theo trục x=
1
2
và theo trục y=
1
5


M
TL
=
0.5 0 0
0 0.2 0
0 0 1
 
 
 
 
 

 Ma trận biến đổi M= M
Q
. M
TL
=
0.8944 -0.4473 0
0.4473 0.8944 0
0 0 1
 
 
 
 
 
.
0.5 0 0
0 0.2 0
0 0 1
 

 
 
 
 

=
0.4472 -0.0895 0
0.2237 0.1789 0
0 0 1
 
 
 
 
 

 Biến đổi A(A
1
A
2
A
3
A
4
) > B(B
1
B
2
B
3
B

4
) tương ứng
B
1
=A
1
.M=(0,0,1).
0.4472 -0.0895 0
0.2237 0.1789 0
0 0 1
 
 
 
 
 
= (0,0,1)
B
2
=A
2
.M=(2,1,1).
0.4472 -0.0895 0
0.2237 0.1789 0
0 0 1
 
 
 
 
 
= (1.1181,-0.0001,1)=(1,0,1)


B
3
=A
3
.M=(0,5,1).
0.4472 -0.0895 0
0.2237 0.1789 0
0 0 1
 
 
 
 
 
= (1.1185,0.8945,1)=(1,1,1)
B
4
=A
4
.M=(-2,4,1).
0.4472 -0.0895 0
0.2237 0.1789 0
0 0 1
 
 
 
 
 
= (0.0004,0.8946,1)=(0,1,1)


Bài 3:Tìm ảnh của điểm A(8,9) sau phép quay 50
o
quanh điểm B(3,1). Cho biết ma trận
biến đổi?.
 Ma trận tịnh tiến điểm B về gốc tọa độ O
M
TT(B->O)
=

1 0 0
0 1 0
-3 -1 1
 
 
 
 
 

 Ma trận quay quanh gốc tọa độ một góc 50
o
:
M
Q
=
o o
o o
os50 sin50 0
-sin50 cos50 0
0 0 1
c

 
 
 
 
 
=
0.64 0.77 0
-0.77 0.64 0
0 0 1
 
 
 
 
 

 Ma trận tịnh tiến O ->B
M
TT(O->B)
=
1 0 0
0 1 0
3 1 1
 
 
 
 
 

 Ma trận biến đổi:
M=M

TT(B->O)
.M
Q
.M
TT(O->B)
=
1 0 0
0 1 0
-3 -1 1
 
 
 
 
 
.
0.64 0.77 0
-0.77 0.64 0
0 0 1
 
 
 
 
 
.
1 0 0
0 1 0
3 1 1
 
 
 

 
 
=
0.64 0.77 0
-0.77 0.64 0
1.85 -1.98 1
 
 
 
 
 

50
0

50
0

O

A

B

A’

y

x


Ảnh của điểm A là A’=A.M=(8,9,1).
0.64 0.77 0
-0.77 0.64 0
1.85 -1.98 1
 
 
 
 
 
=(0.04,9.94,1)=(0,10,1)
Bài 4:
M=
0 0
0 0
1
A
B
C D
 
 
 
 
 
Với A=
r l
W - W
r l
V V

,B=

t b
W -W
t b
V V

,C=V
l
– AW
l
, D=V
b
- BW
b

Chứng tỏ rằng phép biến đổi M bao gồm các phép biến đổi:
 Tịnh tiến một đoạn (-W
l
, -W
b
)
 Tỉ lệ với cặp tỉ số (A,B)
 Tịnh tiến một đoạn (V
l
, V
b
).
 Ma trận tịnh tiến một đoạn (-W
l
, -W
b

)
M
TT(W)
=
l b
1 0 0
0 1 0
W -W 1
 
 
 
 

 

 Ma trận tỉ lệ (A,B)
M
TL
=
0 0
0 0
0 0 1
A
B
 
 
 
 
 



 Ma trận tịnh tiến một đoạn (V
l
, V
b
).
M
TT(V)
=
l b
1 0 0
0 1 0
V 1
V
 
 
 
 
 

Ma trận biến đổi tổng hợp:
M’= M
TT(W)
. M
TL
. M
TT(V)
=
l b
1 0 0

0 1 0
W -W 1
 
 
 
 

 
.
0 0
0 0
0 0 1
A
B
 
 
 
 
 
.
l b
1 0 0
0 1 0
V 1
V
 
 
 
 
 


=
l b
0 0
0 0
WA W B 1
A
B
 
 
 
 
 
 
l b
1 0 0
0 1 0
V 1
V
 
 
 
 
 
=
l l b b
0 0
0 0
WA V W B 1
A

B
V
 
 
 
 
 
 


=
0 0
0 0
1
A
B
C D
 
 
 
 
 
=M
 Điều phải chứng minh.
TÔ MẦU
Thuật toán tô mầu theo đường biên với cải tiến bằng việc sử dụng các điểm hạt giống
tại mỗi dòng quét. Chi hạt giống bắt đầu là điểm tròn như hình.









Quy định lấy điểm hạt giống: Cực trái.
Kho chứa các điểm hạt giống: S
Bước 1: Cho điểm hạt giống 1 trên vào kho hạt giống S
S[1]

Bước 2: Lấy điểm hạt giống trong kho ra tô điểm hạt giống sau đó tô loang sang trái và
sang phải.
1








Bổ sung những điểm hạt giống mới vào kho từ dòng trên và dòng dưới.
S[2,3,4]
Lấy điểm hạt giống 4 ra tô:







Bổ sung những điểm hạt giống mới vào kho từ dòng trên và dòng dưới.
S[2,3,5,6]
Lấy điểm hạt giống 6 ra tô:






1

2

3 4
1

2

3 4
6
5
1

2

3 4
6
5
Cập nhật lại kho hạt giống:
S[2,3,5]


Lấy điểm hạt giống 5 ra tô:




Cập nhật lại kho hạt giống:
S[2,3]
Lấy điểm hạt giống 3 ra tô:







Cập nhật lại kho hạt giống:
S[2]
Lấy hạt giống 2 ra tô:




1

2

3 4
6
5

1

2

3 4
6
5
1

2

3 4
6
5
7
8
Cập nhật lại kho hạt giống:
S[7,8]
Lấy hạt giống 8 ra tô






Cập nhật lại kho hạt giống:
S[7]
Lấy hạt giống 7 ra tô







Cập nhật lại kho hạt giống:
S[] .
Kho hạt giống rỗng, kết thúc việc tô mầu.



1

2

3 4
6
5
7
8
1

2

3 4
6
5
7
8
ĐƯỜNG CONG BEZIER
 Phương trình dạng tham số của đường cong Bezier P đi qua 4 điểm điều khiển:

P
0
=(0,0), P
1
=(0,1), P
2
=(2,1), P
3
=(2,0)
 
3
3
0
3
3
0
( ) ( ).
( ) ( ).
0,1
k
k kx
k
k
k ky
k
x t B t p
y t B t p
t











 
3 2 2 3
0 1 2 3
3 2 2 3
0 1 2 3
( ) (1 ) 3(1 ) 3(1 )
( ) (1 ) 3(1 ) 3(1 )
0,1
x x x x
y y y y
x t t p t tp t t p t p
y t t p t tp t t p t p
t
      
      



 
2 3
2 2
( ) 6 (1 ) 2

( ) 3 (1 ) 3 (1 )
0,1
x t t t t
y t t t t t
t
  
   


Vector tiếp tuyến với Bezier tại điểm ứng với giá trị t=0.5
Ta có: x’(t) = 12t(1-t)-6t
2
+6t
2
= 12t(1-t)
y’(t) = 3(1-t)
2
-6t(1-t)+6t(1-t)-3t
2
= 3(1-t)
2
-3t
2

Thay t=0.5 vào ta được:
n

=(3,0)
 Đường cong Bezier Q có các điểm điều khiển lần lượt là:
Q

0
=(3,0), Q
1
=(3,3), Q
2
=(5,4), Q
3
=(6,0)
Điều chỉnh các điểm trên Q sao cho Q và P liên tục bậc 1 tại điểm (2,0)
Để P và Q liên tục bậc 1 tại P
3
(2,0) thì Q
0


P
3
và vector tiếp tuyến tại P
3
bằng vector
tiếp tuyến tại Q
0
tức là:
Q
0
=(2,0) và
q’(0)=p’(1)  3(q
1
– q
0

) = 3(p
3
– p
2
)

1
1
3( 2) 0
3 1
q
q
x
y
 
 

1
1
2
1
3
q
q
x
y





Vậy các điểm Q sau khi điều chỉnh: Q
0
=(2,0), Q
1
=(2,
1
3

), Q
2
=(5,4), Q
3
=(6,0)
Đường cong trước khi điều chỉnh:







Đường cong sau khi điều chỉnh:














P
0
P
1
P
2
P
3
Q
0
Q
3
Q
1
Q
2
y

x

y
x
Q
2
Q

3
Q
1
P
0
P
1
P
2
P
3

Q
0
XÉN HÌNH










Xén các đoạn thẳng trên bằng thuật toán Cohen-Sutherland và thuật toán Liang-Barsky
Quy ước: C
1
là mã vùng của P
1


C
2
là mã vùng của P
2
Xét mã vùng: TH1: Đoạn thẳng nằm vùng bên trong
TH2: Đoạn thẳng thuộc các vùng bên ngoài
TH3: Còn lại







(6,8)
(4,7)
(0,0) (-1,0)
(0,4)
(6,4)
(10,6)
(6,0)
(6,-2)
(4,1)
Xét đoạn thẳng P
1
(-1,0) ;P
2
(4,7)
 Thuật toán Cohen-Sutherland

Phương trình P
1
P
2
: y=
7 7
5 5
x


P
1
C
1
P
2
C
2
Ghi chú
(-1,0) (1000) (4,7) (0001) TH3: Xén LEFT
(0,
7
5
)
(0000) (4,7) (0001) TH3: Hoán vị
(4,7) (0001)
(0,
7
5
)

(0000) TH3:Xén TOP
(
13
7
,4)
(0000)
(0,
7
5
)
(0000) TH1: Dừng

 Thuật toán Liang-Barsky:
Phương trình tham số của P
1
P
2
:
1 5
7
x t
y t
  




với t



0,1

Hệ bất phương trình:
 
0 -1+5t 6
0 7 4
0,1
t
t
 
 


 
1 7
5 5
4
0
7
0,1
t
t
t
 
 


1 4
5 7
t

 

Sau khi xén ta được P
1new
=(0,
7
5
) P
2new
=(
13
7
,4)
Đoạn thẳng P
1
P
2
sau khi xén:





(
13
7
,4)
(0,
7
5

)
(0,4) (6,4)
(0,0)
(6,0)
Xét đoạn thẳng P
1
(6,-2) ;P
2
(4,1)
 Thuật toán Cohen-Sutherland
Phương trình P
1
P
2
: y=
3
2

x+7
P
1

C
1

P
2

C
2


Ghi chú
(6,-2) (0010) (4,1) (0000) TH3: Xén BOTTOM
(
14
3
,0)
(0000) (4,1) (0000) TH1: Dừng

 Thuật toán Liang-Barsky:
Phương trình tham số của P
1
P
2
:
6 2
2 3
x t
y t
 


  

với t


0,1

Hệ bất phương trình:

 
0 6-2t 6
0 2 3 4
0,1
t
t
 
   


 
0 3
2
2
3
0,1
t
t
t
 
 


2
1
3
t
 

Sau khi xén ta được P

1new
=(
14
3
,0) P
2new
=(4,1)
Đoạn thẳng P
1
P
2
sau khi xén:









(0,4) (6,4)
(0,0)
(6,0)
(
14
3
,0)
(4,1)
Xét đoạn thẳng P

1
(6,8) ;P
2
(10,6)
 Thuật toán Cohen-Sutherland
Phương trình P
1
P
2
: y=
1
2

x+11
P
1

C
1

P
2

C
2

Ghi chú
(6,8) (0001) (10,6) (0100) TH2: Dừng

 Thuật toán Liang-Barsky:

Phương trình tham số của P
1
P
2
:
6 4
8 2
x t
y t
 


 

với t


0,1

Hệ bất phương trình:
 
0 6+4t 6
0 8 2 4
0,1
t
t
 
  



 
3
0
2
2 4
0,1
t
t
t

 
 

 Bất phương trình vô nghiệm
=>P
1
P
2
nằm ngoài khung xén, sau khi xén P
1
P
2
mất

×