Chương V. Biến đổi ba chiều

 I. Nhắc lại đại số với véctơ  II. Các phép biến đổi 3D cơ sở  III. Biến đổi 3D gộp

1

Đại số véctơ

P2 V  Biểu diễn véctơ

 Đoạn thẳng có hướng giữa hai điểm xác định

P1

 VV

(

x

,

y

,

z

)

1

x 1

2

y 1

2

z 1

2

2  Nhân hai véctơ

 Cộng hai véctơ

 Tích vô hướng hay tích điểm

y

VV

1.

xx 21

yy 1

2

zz 21

V1+V2

2  Độ dài véctơ

V2=(x2,y2,z2)

2

2

2

V1=(x1,y1,z1)

V

 V.V

(

x

y

z

)

x V2 z

cos

V1 

VV . 1

2

VV 1

2

Chiếu V2 trên V1

2

Đại số véctơ

 Tích có hướng của hai véctơ

 Kết quả là véctơ vuông góc với mặt phẳng

tạo ra bởi hai véctơ

V1 x V2 V2

 Véctơ đơn vị u

 Có độ dài bằng 1

 Xác định hướng của véctơ kết quả

 Quy tắc bàn tay phải

 Nắm tay phải, để cong các ngón tay

từ V1 đến V2 (nếu V1xV2), lòng bàn

tay hướng về gốc, ngón cái sẽ trỏ theo

hướng của u

 Véctơ kết quả

x

sin

u  V1

 VVuVV 2

1

2

1

3

Đại số véctơ

,

, uuu y

x

z

 Véctơ đơn vị theo các trục tọa độ:

y

u

u

u

z

 Tích có hướng của hai véctơ được biểu diễn như sau:

uy

VV x

2

1

uz

x

ux

x x 1 x

y y 1 y

z 1 z

2

2

2

z

u

(

)

u

(

)

u

(

)

VV x 1

2

zy 21

x

yz 1

2

xz 1

2

y

zx 21

yx 1

2

z

yx 2

1

y

 Cho trước véctơ p. Cosine hướng

P(x, y, z)

là cosine của các góc ,  và 

 Cosine hướng

u 

y = r cos 

p p

u= i cos  + j cos  + k cos 

j O

k

i

x

cos2  + cos2  + cos2  = 1

z

(x, 0, z)

4

Các phép biến đổi 3D cơ sở

 Dịch chuyển  Co dãn  Xoay  Các phép biến đổi khác

5

Các phép biến đổi 3D cơ sở

y

(x', y',z')

1 0

0 1

0 0

0 0

y

'

z

y

z

 1'

 x

(x, y,z)

x

0 T

0 1

y

1 T z

z

    1  0  T   x

      

 x '

 Dịch chuyển điểm (x, y, z) đến (x’, y’, z’)

Sx 0

0 Sy

0 0

0 0

'

y

'

z

y

z

 x

 1'

 x

0 0

0 0

Sz 0

0 1

    1   

     

 Co dãn

6

Các phép biến đổi 3D cơ sở

 Chọn trục xoay và góc xoay  Qui ước: Xoay ngược chiều kim đồng hồ theo trục sẽ tạo thành góc dương

nếu nhìn về gốc tọa độ từ nửa trục dương.

 Trục dễ quản lý: song song trục tọa độ

 Xoay

y

x z

x

'

x

cos

y

sin

cos

sin

00

sin

y

cos

' y ' z

 

x z

'

y

'

z

y

z

 x

 1'

 x

sin 0

cos 0

00 01

0

0

10

    1   

     

 Xoay quanh trục z

7

Các phép biến đổi 3D cơ sở

0

0

0

'

y

'

z

y

z

 x

 1'

 x

cos sin

   

sin z cos z

 

0 0

cos  sin

 

sin cos

 

0 0

  

y y x

0

0

1

0

1     1   

     

' y ' z ' x

 Xoay quanh trục x

z x

' '

 

z z

cos sin

   

x x

sin cos

 

y

'

y

cos

0

sin

0

x

'

y

'

z

x

y

z

 1'

0  sin

1 0

0 cos

0 0

0

0

0

1

    1   

     

 Xoay quanh trục y

8

Xoay quanh trục bất kỳ

 Trường hợp đặc biệt

 Trục xoay song song trục tọa độ  Các bước thực hiện

 Dịch đối tượng sao cho trục xoay về trục tọa độ song song với nó  Thực hiện xoay  Dịch đối tượng sao cho trục xoay về vị trí ban đầu

 Trường hợp tổng quát

 Yêu cầu bổ sung một vài biến đổi  Xác định ma trận chuyển đổi bằng đại số véctơ  Xác định ma trận chuyển đổi bằng hình học

9

Các bước xoay quanh trục bất kỳ

1. Dịch đối tượng sao cho trục xoay đi qua gốc tọa độ.

2. Xoay đối tượng sao cho trục xoay trùng với một

trong các trục tọa độ.

3. Thực hiện xoay đối tượng.

4. Áp dụng xoay ngược để trục xoay trở về hướng

xoay ban đầu.

5. Áp dụng chuyển dịch ngược để đem trục xoay về vị

trí ban đầu.

10

Tìm ma trận chuyển đổi bằng hình học

(x2,y2,z2)

l

z1) và (x2, y2, z2), có độ dài l

(x1,y1,z1)

 Bước 1: Tịnh tiến sao cho đầu cuối của nó trùng với gốc

tọa độ.

(x0, y0, z0)

 Tọa độ hai đầu đoạn thẳng sẽ là (0, 0, 0) và (x0, y0, z0).  Bước 2: Thực hiện xoay quanh trục x và y để trục bất kỳ

trùng với trục z

 Bước 3: Xoay quanh trục z góc 

y

 Bước 4: Xoay ngược lại quanh trục y và x

(x0, y0, z0)

 Bước 5: Tịnh tiến ngược để đưa trục về vị trí ban đầu.

l

 Giả sử trục xoay được xác định bởi hai điểm (x1, y1,

x

l

 T

 T

 T

  T

  T

  T

 T

 T

 1

R

TR

R

R

R

TR

l

ARB

 xR

 y

 zR

 y

 x

z

 Ma trận biến đổi cuối cùng

11

Thực hiện tính toán

(x2,y2,z2)

l

 TTR

1 0 0

0 1 0

0 0 1

0 0 0

(x1,y1,z1)

1

x 1

y 1

z 1

     

     

 Bước 1: Ma trận tịnh tiến

12

Thực hiện tính toán

y

 Bước 2:

 Tính góc  cho ma trận xoay. Chiếu trục xoay

(0, y0, z0)

(x0, y0, z0) l

sin

y 0 d

y

0 

z

y 2 0

2 0

 x d  l

k

cos

z 0 d

y

0 

z

z 2 0

2 0

z y

lên mặt phẳng yz

(x0, y0, z0)

 Ma trận xoay quanh x một góc 

l

 d x

1

0

0

0

1

0

0

0

/

0

  T xR

 l k

0 0

cos  sin

 

sin cos

 

0 0

0 0

z 0  y

d / d

y z

/ /

d d

0 0

0

0

0

0

1

0

0 0

0

1

     

     

     

     

z

13

Thực hiện tính toán

y

 Bước 3:

 Tìm góc quay  xung quanh trục y

(x0, y0, z0)

cos

l

x 0 l

d l

d x 

x

y

z

l

2 0

2 0

2 0

 l k

2

2

x

y

z

l

x

d

l

2 0

2 0

2 0

2 0

y

z

2 0

2 0

sin  2 d

 Ma trận xoay quanh y một góc 

l

x

cos 0

0 1

sin 0

0 0

ld / 0

0 1

/ 0 0

0 0

  T yR

/

l

sin 0

0 0

cos 0

0 1

x 0 0

0 0

ld / 0

0 1

     

     

     

     

z

14

Thực hiện tính toán

 Xoay xung quanh trục đã trùng với trục z

 Bước 4:

cos

sin

00

y

sin

cos

00

(x0, y0, z0)

0

0

01

l

d x 

0

0

10

     

     

  zRT

 l k

z

trận cuối cùng

 Tìm ma trận biến đổi ngược trước khi tính toán ma

15

Tìm ma trận xoay bằng đại số véctơ

y

(x2,y2,z2)

và P2 (x2, y2, z2).

 Trục xoay đi qua hai điểm P1 (x1, y1, z1)

u

(x1,y1,z1)

x

V

x

(

yx , 1

zy , 1

2

2

2

z

z ) 1  Véc tơ đơn vị u theo trục xoay sẽ là

x

y

z

x 1

2

a

b ,

c ,

b

,

 P1 và P2 xác định véc tơ V:

u

 , a

c

 V

 V

2 |

y 1 |

 V

2 |

z 1 |

V V

 Giả sử chọn trục z để biến đổi trục xoay theo nó

16

Tìm ma trận xoay bằng đại số véctơ

 Các bước thực hiện

 Bước 1: Dịch đối tượng sao cho P1 về gốc tọa độ

T

y

1 0 0

0 1 0

0 0 1

0 0 0

u

1

x 1

y 1

z 1

     

     

 Biến đổi sao cho trục xoay trùng trục z

 Xoay quanh trục x sao cho véc tơ u trong mặt phẳng xz

 Xoay quanh trục y để đem u về trục z

z x

17

Tìm ma trận xoay bằng đại số véctơ

 Bước 2: Tìm ma trận xoay quanh x để u về mặt phẳng xz  Góc xoay: giữa ánh xạ véctơ u vào mặt yz và trục dương z

 Tìm góc xoay ?

u

x

x

z

z

u

Biến đổi sao cho trục xoay trùng trục z

18

Tìm ma trận xoay bằng đại số véctơ

y

z

cos

,

 Tìm cos  u'.u uu '

c d

z

u=(a,b,c)

u'=(0,b,c)

2

2

2

2

2

u'

0

b

c

b

c

d

x

1

u

z

uz=(0,0,1)

z u'.u

0.0

0. b

c

1.

c

z

2

2

' u u x

u u' u

.

.

.sin

u

b

c

sin

u

d

sin

 Tính sin 

z

x

z

x

x

u' = (0, b, c) và uz = (0, 0, 1)

sin

b d

u

b

' uu x z

x

u x 0 0

u y b 0

u z c 1

19

Tìm ma trận xoay bằng đại số véctơ

 Ma trận xoay quanh trục x

0

0

0

0

0

0

Rx

 ) (

cos  sin

 

sin cos

 

0 0

0 0

0 0

dc /  db /

db / dc /

0 0

0

0

0

1

0

0

0

1

1      

     

1      

     

2

y

z

d

2 b 

c

b

c ,

 V

2 |

y 1 |

 V

2 |

z 1 |

2

2

2

V

 V.V

(

x

y

z

)

20

Tìm ma trận xoay bằng đại số véctơ

trục dương z

 Các thành phần của u”:

 Xoay quanh trục x nên thành phần x của véctơ có giá trị a

 Vì xoay u’ vào trục z cho nên thành phần z của u” có giá trị d

 Thành phần y của u” có giá trị 0

 Tính cos  từ tích vô hướng của u” và uz

y

 Bước 3: Tìm ma trận xoay véctơ đơn vị u’’ trong mặt xz quanh trục y vào

u’=(0,b,c)

z

cos

d

u".u uu"

z

uz

x

VV

1.

2

xx 21

yy 1

2

zz 21

u"=(a,0,d)

 Theo tính chất cosin hướng ta có

(b2+c2)1/2=d

z

|uz| =1 và |u"| = (a2+b2+c2)1/2=1

21

Tìm ma trận xoay bằng đại số véctơ

 Tính sin  từ tích có hướng của u” và uz

u" u x

 

u u" u

sin

 

u

.1.1.sin

 

u

sin

z

y

y

y

z

u

u

u

y

u’=(0,b,c)

u

(

a

)

" uu x

y

z

z d 1

y 0 0

x a 0 Do đó: sin  = a

uz

x

 Xoay quanh trục y với góc âm

u"=(a,0,d)

(b2+c2)1/2=d

d

0

a

0

z

0

1

00

  Ry 

a  0

d 0 0 100

     

     

22

Tìm ma trận xoay bằng đại số véctơ

 Xoay quanh trục y với góc âm (theo chiều kim đồng hồ)

d

0

a

0

0

001

y

  Ry 

u’=(0,b,c)

a  0

d 0 0 100

     

     

 Trục xoay là trục z dương, góc xoay 

uz

x

cos

sin

00

u"=(a,0,d)

sin

cos

00

(b2+c2)1/2=d

z

  Rz

0

0

1

0

0

0

10

     

     

 Bước 4: Biến đổi trục xoay về vị trí ban đầu

R()=T.Rx().Ry().Rz().Ry-1 ().Rx-1 ().T-1

 Ma trận biến đổi xoay cuối cùng là

23

Phép lấy đối xứng (reflection)

 Lấy đối xứng một trục tọa độ qua mặt phẳng phản chiếu

 Giải pháp

 Biến đổi này làm thay đổi trục z còn giữ nguyên các trục x, y

 Biểu diễn ma trận phản chiếu của các điểm so với mặt phẳng xy sẽ như sau

y

0

0

y

z

10

0

0

RFz

00

01

x

x

z

00

0

1

01      

     

 Thí dụ lấy đối xứng qua mặt phẳng xy

24

Phép lấy đối xứng (reflection)

0001

1

0

00

001

0

001

RFx

RFy

0

010

0

0

01

0

100

0

0

10

  0    

     

     

     

 Lấy đối xứng qua mặt phẳng yz và xz

1

0

0

0

RFo

 1 0

0 0  1 0

0

0

0

1

  0   0  

     

 Lấy đối xứng qua gốc tọa độ (0, 0, 0)

25

Biến dạng (shear)

 Thực hiện tương tự như biến dạng trong 2D

 Với a, b có giá trị bất kỳ, ma trận biến dạng sẽ như sau

1

0

0

0

0 a

1 b

0 1

0 0

0

0

0

1

     

     

26

1. Một hình chóp A(0, 0, 0), B(1, 0, 0), C(0, 1, 0) và D(0, 0, 1) được

xoay một góc 450 quanh đoạn thẳng L được xác định theo hướng V=

j + k và đi qua đỉnh C. Xác định tọa độ của các đỉnh sau phép xoay.

2. Tìm các tọa độ mới của khối vuông

y

đơn vị như hình bên đây, sau khi xoay

(1, 1, 0) (0, 1, 0)

quanh một trục xác định bởi điểm

(0, 1, 1) (1, 1, 1)

A(2, 1, 0) và B(3, 3, 1). Góc xoay là

(1, 0, 0) x (0, 0, 0)

900 ngược chiều kim đồng hồ.

z (0, 0, 1) (1, 0, 1)

27

Thực hành

3. Tìm ma trận chuyển đổi để biến đổi khối vuông đơn vị như hình dưới bên

trái thành khối chữ nhật như hình dưới bên phải.

y

y 2 x 1

4 x 1 1 z z 450 3

4. Hãy tìm ma trận chuyển đổi hình chóp tam giác ABCD bên trái thành hình

chóp tam giác bên phải.

1 1

2 y C(1,2,1)

A(0,1,0)

B(1,0,0) x x C(1,0,0) B(0,0,1) 450 1 A D z z 1/2

28

Thực hành

Các bước thực hiện

1. Co dãn theo Oy Sy=1/2, Sx=Sz=1. 2. Quay quanh Oy một góc 180o

3. Quay quanh Oz một góc -900

4. Tịnh tiến (1,0,1)

5. Co dãn Oy

29