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

Bài giảng Đồ họa máy tính: Phần 2 - ĐH Sư phạm kỹ thuật Nam Đị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.84 MB, 99 trang )

Đồ họa máy tính

Chƣơng 5
CÁC PHÉP BIẾN ĐỔI HÌNH HỌC 3 CHIỀU
5.1. Giới thiệu đồ họa ba chiều
Các đối tƣợng trong thế giới thực phần lớn là các đối tƣợng ba chiều, nên việc
thể hiện các đối tƣợng ba chiều trên máy tính là một cơng việc hết sức cần thiết để đƣa
tin học gần gũi với thực tế hơn. Cũng giống nhƣ các cách biểu diễn các đối tƣợng ba
chiều trên mặt phẳng khác (nhƣ của máy ảnh, camera, ... ), biểu diễn bằng máy tính
cũng phải tuân theo các quy luật về phối cảnh, sáng, tối, ... nhằm giúp ngƣời xem có
thể tƣởng tƣợng lại hình ảnh một cách gần đúng nhất. Ngoài ra biểu diễn trên máy tính
có ƣu thế giúp ta có thể quan sát đối tƣợng ở nhiều góc cạnh khác nhau, ở các khoảng
cách khác nhau.
5.1.1. Tổng quan về đồ họa ba chiều
Khi mô hình hóa và hiển thị một cảnh ba chiều, cần phải xem xét rất nhiều khía
cạnh và vấn đề khác nhau chứ không đơn giản là thêm vào tọa độ thứ ba cho các đối
tƣợng. Bề mặt đối tƣợng có thể xây dựng bởi nhiều tổ hợp khác nhau của các mặt
phẳng và các mặt cong. Ngồi ra, đơi khi cũng cần mô tả một số thông tin bên
trong các đối tƣợng. Các công cụ hỗ trợ đồ họa (graphics package) thƣờng
cung cấp một số hàm hiển thị các thành phần bên trong, những đƣờng nét tiêu
biểu hoặc hiển thị một phần của đối tƣợng ba chiều (solid object). Ngoài ra, các phép
biến đổi hình học thƣờng đƣợc sử dụng nhiều hơn và đa dạng hơn trong đồ họa ba
chiều so với trong đồ họa hai chiều. Phép biến đổi hệ quan sát trong không gian ba
chiều phức tạp hơn nhiều so với trong không gian hai chiều do ta phải chọn lựa nhiều
tham số hơn khi mô tả một cảnh ba chiều sẽ xuất hiện trên màn hình nhƣ thế nào.

Hình 5.1 Một cảnh đồ họa ba chiều
123


Đồ họa máy tính


Các mơ tả về một cảnh ba chiều phải đi qua một quy trình xử lí gồm nhiều công
đoạn nhƣ phép biến đổi hệ tọa độ quan sát và phép chiếu chuyển cảnh từ hệ tọa độ
quan sát ba chiều xuống hệ tọa độ thiết bị hai chiều. Những phần nhìn thấy đƣợc của
cảnh, ứng với một hệ quan sát đƣợc chọn nào đó, phải đƣợc xác định và cuối cùng, các
thuật toán vẽ mặt sẽ đƣợc áp dụng nhằm tạo ra hình ảnh trung thực (gần với thực tế)
của cảnh.
5.1.2. Sơ lƣợc về quy trình hiển thị
Quy trình xử lí thơng tin trong đồ họa ba chiều là một chuỗi các bƣớc nối tiếp
nhau, kết quả của mỗi bƣớc sẽ là đầu vào của bƣớc tiếp theo.

Hình 5.2 Quy trình hiển thị đối tượng ba chiều
Quy trình bắt đầu bằng việc xây dựng các mơ hình đối tƣợng. Các mơ hình này
thƣờng đƣợc mơ tả trong khơng gian ba chiều (x,y,z). Các mơ hình thƣờng thể hiện vật
thể (solid) hoặc bề mặt (boundaries) của đối tƣợng. Nhƣ vậy ta có hai kiểu mơ hình
hóa. Trong solid modeling các đối tƣợng đồ họa cơ sở thƣờng đƣợc dùng để mô tả các

124


Đồ họa máy tính
đối tƣợng có thể tích (volume). Trong boundary representations(B-reps), các đối tƣợng
đƣợc định nghĩa bởi bề mặt của chúng.
Các mơ hình thƣờng đƣợc biểu diễn trong một hệ tọa độ cục bộ, mà ta gọi là hệ
tọa độ đối tƣợng. Trong hệ tọa độ này chỉcó bản thân đối tƣợng đƣợc định nghĩa, vì
vậy gốc tọa độ và đơn vị đo lƣờng thƣờng đƣợc chọn sao cho việc biểu diễn đối tƣợng
tiện lợi nhất.
Bƣớc đầu tiên trong quy trình hiển thị là biến đổi đối tƣợng từ không gian đối
tƣợng (object-space) vào một không gian chung gọi là không gian thực (world space).
Trong không gian này các đối tƣợng, nguồn sáng, và ngƣời quan sát cùng tồn tại.
Bƣớc này đƣợc gọi là giai đoạn biến đổi mô hình (modeling transformation).

Bƣớc tiếp theo là một bƣớc tối ƣu hóa. Trong giai đoạn loại bỏ đơn giản (trivial
rejection) cần loại trừ tất cả các đối tƣợng khơng thể nhìn thấy. Điều này giúp tránh
đƣợc việc xử lí một số phần không cần thiết của cảnh (scene) mà ta đang chuẩn bị hiển
thị ở các bƣớc sau.
Tiếp theo phải chiếu sáng (illumination) các đối tƣợng có thể nhìn thấy đƣợc
bằng cách gán cho chúng màu sắc dựa trên các đặc tính của các chất tạo nên vật và các
nguồn sáng tồn tại trong cảnh.
Sau khi chiếu sáng, cần thực hiện một phép biến đổi hệ tọa độ để đặt vị trí quan
sát (viewing position) về gốc tọa độvà mặt phẳng quan sát (viewing plane) về một vị
trí mong ƣớc. Bƣớc này gọi là bƣớc đổi hệ quan sát. Sau bƣớc này, các đối tƣợng đƣợc
chuyển từ không gian thực sang không gian quan sát (eye space).
Trong không gian quan sát, ta phải thực hiện việc xén các đối tƣợng trong cảnh
để cảnh nằm gọn trong một phần khơng gian chóp cụt đƣợc gọi là viewing frustum.
Bƣớc này sẽ loại bỏ hồn tồn các đối tƣợng (các mảnh đối tƣợng) khơng nhìn thấy
đƣợc trong ảnh.
Bƣớc tiếp theo là chiếu các đối tƣợng xuống mặt phẳng hai chiều. Bƣớc
Projection thực hiện phép biến đổi từ không gian quan sát sang không gian màn hình
(screen-space).
Trong bƣớc rời rạc hóa (rasterization) ta sẽ chuyển đối tƣợng thành các pixel.
Cuối cùng, toàn cảnh sẽ đƣợc hiển thị lên màn hình.

125


Đồ họa máy tính
5.1.3. Mơ hình khung nối kết (Wireframe Model)
a. Khái niệm
Một phƣơng pháp thông dụng và đơn giản để mơ hình hóa đối tƣợng là mơ hình
khung nối kết.
Một mơ hình khung nối kết gồm có một tập các đỉnh và tập các cạnh nối giữa

các đỉnh đó. Khi thể hiện bằng mơ hình này, các đối tƣợng ba chiều có vẻ rỗng và
khơng giống thực tế lắm. Để hoàn thiện hơn, ngƣời ta dùng các kĩ thuật tạo bóng và
loại bỏ các đƣờng và mặt khuất. (Chúng ta sẽ đề cập vấn đề này ở các chƣơng sau).
Tuy nhiên vẽ bằng mơ hình này thƣờng nhanh nên ngƣời ta thƣờng dùng nó trong việc
xem phác thảo (preview) các đối tƣợng, đặc biệt là trong các hệ CAD.
b. Biểu diễn các vật thể ba chiều bằng mơ hình khung nối kết
Mơ hình khung nối kết, hình dạng của đối tƣợng ba chiều đƣợc biểu diễn bằng
hai danh sách (list): danh sách các đỉnh (vertices) và danh sách các cạnh (edges) nối
các đỉnh đó. Danh sách các đỉnh cho biết thơng tin hình học đó là vị trí các đỉnh, cịn
danh sách các cạnh xác định thơng tin về sự kết nối, nó cho biết cặp các đỉnh tạo ra
cạnh. Hãy quan sát một vật thể ba chiều đƣợc biểu diễn bằng mơ hình khung nối kết
nhƣ sau:
Bảng danh sách các cạnh và đỉnh biểu diễn vật thể:

Hình 5.3 Vật thể ba chiều được biểu diễn bằng mơ hình khung nối kết

126


Đồ họa máy tính

Có nhiều cách để đặc tả mơ hình khung nối kết trên máy tính nhƣ dùng xâu,
mảng, ... và mỗi cách đều có các ƣu điểm riêng trong từng ứng dụng cụ thể. Ở đây ta
minh họa các biểu diễn mơ hình khung nối kết bằng cấu trúc dữ liệu mảng nhƣ sau:
#define MAXVERTS

50 //số đỉnh tối đa có thể biểu diễn

#define MAXEDGES


100 //số cạnh tối đa

typedef struct {
float

x, y, z;

} POINT3D;
typedef struct {
int

NumVerts; //Số đỉnh trong mơ hình

int

NumEdges; //Số cạnh trong mơ hình
127


Đồ họa máy tính
POINT3D Vert[MaxVerts];
int

Edge[MaxEdges][2];

}WIREFRAME;
Ngồi ra, đơi khi trong mơ hình wireframe ngƣời ta cịn mơ tả các mặt (phẳng)
của đối tƣợng. Mỗi mặt đƣợc định nghĩa bởi một đa giác bao. Ví dụ, đối tƣợng trong
hình 5.3 có 7 mặt.
5.2. Một số khái niệm

5.2.1. Phƣơng pháp biểu diễn điểm trong không gian 3 chiều.

Việc biểu diễn và hiển thị đối tƣợng trong không gian 3 chiều là cơ sở nền
tảng cho việc hiểu và nắm bắt đƣợc hình dạng của đối tƣợng. Qua phép biểu
diễn chúng ta có thể quan sát đƣợc đối tƣợng từ tất cả các góc, cũng nhƣ thao tác
một cách dễ dàng lên các đối tƣợng này. Việc tƣơng tác nhƣ quay, tịnh tiến, tỉ
lệ... lên các đối tƣợng phức tạp có thể chỉ đơn giản bằng cách nhấn chuột lên các
đối tƣợng và kết quả đƣợc hiển thị ngay trên màn hình.
Các đối tƣợng trong đồ họa 3D đƣợc mô tả nhƣ tập các điểm trong một
mặt phẳng. Các điểm đƣợc biểu diễn thông qua tọa độ của chúng viết dƣới dạng
các ma trận hay cịn đƣợc gọi là các vector vị trí. Có 2 phƣơng pháp biểu diễn
các ma trận mà các phép biến đổi đồ họa trên đó là nhƣ nhau bao gồm phƣơng
pháp biểu diễn tọa độ theo ma trận 1 hàng 3 cột và ma trận 3 hàng 1 cột.
hoặc là

x 
 y
 
 z 

Tập các điểm đƣợc lƣu trữ trong máy tính dƣới dạng các ma trận
hay chuỗi điểm mà vị trí của chúng quyết định hình dạng của đƣờng thẳng,
đƣờng cong hay ảnh sẽ dễ dàng kiểm sốt thơng qua các phép biến đổi. Phép
biến đổi đồ họa đƣợc mô tả dƣới dạng các ma trận tƣơng ứng cho phép thể hiện
các sự biến đổi tọa độ của các điểm qua các phép toán nhân ma trận. Điều đó tạo
điều kiện thuận lợi cho ngƣời sử dụng hình dung cũng nhƣ thao tác với các đối
tƣợng hình học một cách dễ dàng và đó cũng là một trong những tính năng mạnh
của đồ họa máy tính.
128



Đồ họa máy tính
5.2.2. Phƣơng pháp biểu diễn sử dụng hệ tọa độ đồng nhất.

Phép biểu diễn thông qua ma trận 3x3 thỏa mãn với mọi phép biến
đổi nhƣ quay, tỉ lệ, đối xứng, biến dạng. Điều đó có nghĩa chúng ta ln có thể
xây dựng đƣợc một ma trận tổng hợp từ các phép biến đổi thành phần. Tuy
nhiên các phép tịnh tiến trong mặt phẳng 3 chiều đƣợc mơ tả bởi 3 phƣơng trình
sau:
x‘= x + tx
y‘= y + ty
z‘= z + tz
thì khơng thể biểu diễn thơng qua ma trận biến đổi 3x3. Nhƣ vậy với quá
trình biến đổi mà trong đó tồn tại phép tịnh tiến thì khả năng đƣa ra một ma trận
biến đổi tổng hợp duy nhất là khơng thể. Điều đó buộc chúng ta phải tìm ra một
giải pháp mới hữu hiệu hơn mà trong đó phép biểu diễn điếm thơng qua các ma
trận đồng nhất là một giải pháp tối ƣu.
Phƣơng pháp biểu diễn mở rộng thông qua tọa độ đồng nhất của
các vector vị trí khơng đồng nhất [x y z] là ứng dụng của phép chiếu hình học
mà ở đó tọa độ điểm đƣợc mô tả dƣới dạng ma trận
[hx

hy hz h] và h là một số thực tùy ý. Để đơn giản chọn h = 1. Vậy

một điểm trong mặt phẳng ở hệ tọa độ đồng nhất sẽ có 4 thành phần là
[x

y

z


1]. Các phép biến đổi trong mặt phẳng đƣợc biểu diễn dƣới

dạng
[ X‘ ] = [X ] * [ T ]
trong đó [ X‘] = [x‘ y‘ z‘ 1], [ X] = [x y z 1], [T] là ma trận vng
cấp 4.
Có thể cải tiến các ma trận vuông cấp 3 trong các phép biến đổi thành ma
trận vuông cấp 4 mà không làm thay đổi đến các phép biến đổi bằng cách thêm
1 hàng, 1 cột vào ma trận.

129


Đồ họa máy tính

5.2.3. Cơng thức biến đổi Affine.

Phép biến đổi affine là phép biến đổi tuyến tính tọa độ điểm đặc
trƣng của đối tƣợng thành tập tƣơng ứng các điểm mới để tạo ra các hiệu ứng
cho toàn đối tƣợng.
[ X‘ ] = [ X ] * [ M ]
Với M4x4 là ma trận biến đổi .
a b c p 
d e f q 

[ x' y' z' 1]  [ x y z 1] * 
g i j r



l m n s
Một số tính chất của các phép biến đổi ba chiều :
-

Tính chất đƣờng thẳng đƣợc bảo tồn. Nghĩa là, một đƣờng thẳng trong khơng
gian ba chiều khi biến đổi sẽ thành một đƣờng thẳng.

-

Tính song đƣợc bảo toàn. Nghĩa là, hai đƣờng thẳng song khi biến đổi cũng sẽ
thành hai đƣờng thẳng song.

-

Tính tỉ lệ về khoảng cách đƣợc bảo toàn. Nghĩa là, ảnh của một điểm P chia
đoạn thẳng AB theo tỉ lệ f, sẽ chia đoạn thẳng A‘B‘ theo tỉ lệ f, với A‘B‘ là ảnh
của đoạn thẳng AB.

Hình 5.4 Một cảnh ba chiều được tạo nhờ các phép biến đổi
130


Đồ họa máy tính
5.2.4. Các hệ trục tọa độ theo quy ƣớc bàn tay phải và bàn tay trái
Hệ tọa độ Descartes ba chiều có thể định nghĩa theo quy ƣớc bàn tay trái hoặc
bàn tay phải.

Hình 5.5(a)Các hệ tọa độ theo quy ước bàn tay phải, (b) quy ước bàn tay trái
Định nghĩa:
- Hệ tọa độ theo quy ƣớc bàn tay phải là hệ tọa độ với các trục x, y, z thỏa điều

kiện: Nếu để bàn tay phải sao cho ngón cái hƣớng cùng chiều với trục z, khi nắm tay
lại, chiều các ngón tay chuyển động theo hƣớng từ trục x đến trục y.
- Hệ tọa độ theo quy ƣớc bàn tay trái là hệ tọa độ với các trục x, y, z thỏa điều
kiện: Nếu để bàn tay trái sao cho ngón cái hƣớng cùng chiều với trục z, khi nắm tay
lại, chiều các ngón tay chuyển động theo hƣớng từ trục x đến trục y.
5.3. Các phép biến đổi hình học 3 chiều cơ sở
5.3.1. Phép tịnh tiến

Hình 5.6 Phép tịnh tiến với vector tịnh tiến tr=(trx, try, trz)
Vector tịnh tiến tr trong phép biến đổi ba chiều có một tác động rất trực quan:
mỗi điểm đƣợc dịch đi một khoảng là trx, try, trz theo ba trục.
Công thức biến đổi:
131


Đồ họa máy tính

 x'  x  trx

 y '  y  try
 z '  z  trz

Ma trận phép tịnh tiến có dạng nhƣ sau:

0
0
1
0
1
0

[T (trx, try, trz )]  
0
0
1

trx try trz

0
0
0

1

5.3.2. Phép biến đổi tỉ lệ
Phép biến đổi tỉ lệ trong ba chiều là một sự mở rộng của phép biến đổi tỉ lệ
trong hai chiều: Nếu thay đổi đối tƣợng một tỉ lệ sx theo trục Ox, sy theo trục Oy và sz
theo trục Oz thì tọa độ của đối tƣợng biến đổi theo công thức:
 x'  x * Sx

 y '  y * Sy
 z '  z * Sz


Ma trận biến đổi:

 Sx 0 0 0
 0 Sy 0 0

S = 
0 0 Sz 0



 0 0 0 1
Trong đó các hằng số sx, sy, sz là các hệ số tỉ lệ tƣơng ứng theo các trục x, y, z.

Hình 5.7. Phép biến đổi tỉ lệ
Chú ý.

132


Đồ họa máy tính
Nếu sx = -1, sy = sz = 1 thì phép tỉ lệ là phép đối xứng qua mặt phẳng yOz.
Nếu sy = -1, sx = sz = 1 thì phép tỉ lệ là phép đối xứng qua mặt phẳng xOz.
Nếu sz = -1, sy = sx = 1 thì phép tỉ lệ là phép đối xứng qua mặt phẳng xOy.
Nếu sx = sy = sz = 1 thì đối tƣợng đƣợc giữ nguyên hình dạng ban đầu.
Nếu 0 < sx, sy, sz < 1 thì phép biến đổi tƣơng ứng là thu nhỏ đối tƣợng.
Nếu sx, sy, sz > 1 thì phép biến đổi thu đƣợc là phép phóng to đối tƣợng.
Khi các hệ số tỉ lệ sx, sy, sz bằng nhau, ta có phép biến đổi đồng dạng.
Trong phép biến đổi S(sx, sy, sz ), gốc tọa độ O sẽ có ảnh là chính nó. Ta gọi
gốc tọa độ là điểm bất động (fixed point) của S, hay còn gọi O là tâm của phép biến
đổi.
Tổng qt hơn, ta có thể mơ tả một phép biến đổi tỉ lệ theo một tâm (xf, xf, xf)
bất kì bằng một dãy ba phép biến đổi sau:
Tịnh tiến điểm bất động (xf, xf, xf) về gốc tọa độ.
Thực hiện phép biến đổi tỉ lệ theo công thức
Tịnh tiến ngƣợc điểm bất động từ gốc tọa độ trở về vị trí ban đầu.
Nhƣ vậy, kết hợp ba bƣớc biến đổi trên ta có đƣợc ma trận biến đổi của phép
biến đổi tỉ lệ theo tâm (xf, xf, xf)với hệ số tỉ lệ sx, sy, sz là:


5.3.3. Phép biến dạng
Biến dạng theo bất kì trục tọa độ nào cũng bị ảnh hƣởng bởi tọa độ ứng với hai
trục còn lại. (Sự thay đổi của x phụ thuộc cả vào y và z và ngƣợc lại.)

Công thức biến đổi.
 x'  x  cy  ez

 y '  ax  y  fz
 z '  bx  dy  z

133


Đồ họa máy tính

Ma trận biến đổi.
1
c

Tsh = 
e

0

a
1

b
d


f
0

1
0

0
0
0

1

Hình 5.8. Phép biến dạng theo trục x: a = b = 1, các hệ số khác bằng 0
Tƣơng tự nhƣ trong trƣờng hợp phép biến đổi tỉ lệ, phép biến dạng Sh cũng có
điểm bất động là gốc tọa độ O. Ta cũng có thể xây dựng phép biến dạng với tâm biến
dạng tại một điểm (xf, xf, xf) bất kì.
Ma trận biến đổi của phép biến dạng với tâm tại (xf, xf, xf) là:
1
a


c
1
T= 

e
f

 y f * c  z f * e  x f * a  z f * f


b
d
1
 xf *b  y f * f

0
0
0

1

5.3.4. Phép quay
a. Phép quay quanh một trục tọa độ
Phép quay là phép biến đổi làm thay đổi hƣớng của đối tƣợng nhƣng kích thƣớc
và hình dạng của đối tƣợng vẫn đƣợc giữ nguyên.
Khi quay đối tƣợng quanh một trục nào đó thì tọa độ của đối tƣợng tại trục đó
sẽ khơng đổi.
Chiều dƣơng của phép quay: Các định nghĩa về chiều quay đƣợc dùng chung
cho cả hệ tọa độ theo quy ƣớc bàn tay phải và bàn tay trái. Cụ thể chiều dƣơng đƣợc
định nghĩa nhƣ sau:
Quay quanh trục x: từ trục dƣơng y đến trục dƣơng z.
Quay quanh trục y: từ trục dƣơng z đến trục dƣơng x.
134


Đồ họa máy tính
Quay quanh trục z: từ trục dƣơng x đến trục dƣơng y.

Hình 5.9 Cách xác định chiều quay dương
a. Quay đối tượng quanh trục Ox.

Là phép quay mà giá trị của x trong vector vị trí khơng thay đổi. Mặt
phẳng xoay sẽ vng góc với trục Ox.

Hình 5.10 Quay đối tượng quanh trục Ox
Công thức biến đổi

 x'  x

 y '  y cos   z sin 
 z '  y sin   z cos 

Ma trận biến đổi.

0
1
0 cos 
[Tx]  
0  sin 

0
0

0
sin 
cos 
0

0
0
0


1

b. Quay đối tượng quanh trục Oy.

135


Đồ họa máy tính
Là phép quay mà giá trị của y trong vector vị trí khơng thay đổi. Mặt phẳng
xoay sẽ vng góc với trục Oy.

Hình 5.11 Quay đối tượng quanh trục Oy
Công thức biến đổi.
 x'  x cos   z sin 

 y'  y
 z '   x sin   z cos 


Ma trận biến đổi.

cos 
 0
[Ty]  
 sin 

 0

0  sin 

1
0
0
0

cos 
0

0
0
0

1

c. Quay đối tượng quanh trục Oz
Là phép quay mà giá trị của z trong vector vị trí khơng thay đổi. Mặt phẳng
xoay sẽ vng góc với trục Oz.

Hình 5.12 Quay đối tượng quanh trục Oz
Cơng thức biến đổi.
136


Đồ họa máy tính

 x'  x cos   y sin 

 y '  x sin   y cos 
z'  z


Ma trận biến đổi.

 cos 
 sin 
[Tz]  
 0

 0

sin 
cos 
0
0

0 0
0 0
1 0

0 1

b. Quay quanh một trục bất kỳ song song với các trục tọa độ.
Các ma trận biến đổi quay quanh các trục tọa độ rất có hiệu quả trong việc xử lý
biến đổi các đối tƣợng, tuy nhiên việc quay các đối tƣợng thƣờng dựa trên các trục
song song với các trục tọa độ gốc. Quá trình quay đối tƣợng quanh các trục của chúng
tuân thủ theo các bƣớc sau:
Bƣớc 1: Dịch chuyển đối tƣợng sao cho trục quay trùng với trục tọa độ
Bƣớc 2 : Quay đối tƣợng quanh trục của nó (tƣơng đƣơng với trục tọa độ gốc).
Bƣớc 3 : Đƣa trả đối tƣợng về vị trí ban đầu.
Ví dụ: Quay đối tƣợng quanh trục song song với trục Ox, cách trục Oy, Oz một
khoảng ty, tz

Bƣớc 1: Tịnh tiến sao cho trục quay trùng với trục Ox:
1
0
Ma trận biến đổi: T1= 0
0

0
1
0
−𝑡𝑦

0
0
1
−𝑡𝑧

0
0
0
1

Bƣớc 2: Quay quanh trục Ox:
1
0
0
0 cos 𝛼 sin 𝛼
Ma trận biến đổi: T2=
0 − sin 𝛼 cos 𝛼
0
0

0
Bƣớc 3: Tịnh tiến ngƣợc về vị trí ban đầu:
1
0
Ma trận biến đổi: T3= 0
0

0
1
0
𝑡𝑦

0
0
1
𝑡𝑧

0
0
0
1

137

0
0
0
1



Đồ họa máy tính
Bƣớc 4: Ma trận của phép quay quanh trục song song với trục Ox cách trục Oy,
Oz 1 khoảng ty,tz là
T=T1*T2*T3
1
0
=0
0
1
0
=0
0

0
1
0
−𝑡𝑦

0
0
1
−𝑡𝑧

0
1
0
0
0 ∗ 0
1
0


0
0
1
𝑡𝑧

0
0
0
1

0
sin 𝛼
cos 𝛼
𝑡𝑧 ∗ (1 − cos 𝛼) − 𝑡𝑦 ∗ sin 𝛼

0
0
0
1

0
cos 𝛼
− sin 𝛼
0

0
cos 𝛼
− sin 𝛼
𝑡𝑦 ∗ 1 − cos 𝛼 + 𝑡𝑧 ∗ sin 𝛼


0
sin 𝛼
cos 𝛼
0

1
0
0
0
∗ 0
0
0
1

0
1
0
𝑡𝑦

c. Phép quay quanh một trục bất kì
Giả sử trục quay đi qua hai điểm P0, P1 nào đó với phƣơng đƣợc biểu diễn bởi
vector đơn vị k. Quay điểm (x, y, z) quanh trục k theo một góc Ɵ sẽ biến thành điểm
(x‘, y‘, z‘) (xem hình 5.13).

Hình 5.13 – Quay đối tượng quanh trục bất kỳ
Để thực hiện phép quay quanh k một góc Ɵ, ta có thể thực hiện một chuỗi các
thao tác sau:
Tịnh tiến trục k về gốc tọa độ: tr(-P0) (thành trục k').
Quay quanh trục x một góc α để đặt trục k' nằm trên mặt phẳng Oxz: rot(x, α)

(thành trục k‖).
Quay quanh trục y góc β để đƣa trục k‖ về trục z: rot(y,- β).
Thực hiện phép quay quanh trục z một góc Ɵ: rot(z, Ɵ).
Thực hiện chuỗi các phép biến đổi ngƣợc lại quá trình trên.
138


Đồ họa máy tính
Góc quay α đƣợc xác định dựa trên chiếu của k' lên mặt phẳng Oyz. Ta không
cần tính α cụ thể. Thay vào đó ta tính sin(α) và cos(α) một cách trực tiếp.
Từ hình 5.13 ta có:

Tƣơng tự, từ hình 5.14 ta có:

Nhƣ vậy, phép quay quanh một trục P0 P1 bất kì một góc , rot(P0P1, ), có thể
đƣợc phân rã thành chuỗi các biến đổi cơ sở sau: tr(-P0) rot(x, α) rot(y, - β) rot(z, )
rot(y, β) rot(x, - α) tr(P0)

Hình 5.14 Tính góc β
5.3.5.Phép đối xứng.
a. Đối xứng qua mặt phẳng xOy.
Là phép biến đổi mà giá trị của x, y trong vector vị trí khơng thay đổi.
Giá trị của z = -z

Hình 5.15 Đối xứng qua mặt phẳng xOy
139


Đồ họa máy tính
Cơng thức biến đổi.

 x'  x

 y'  y
z'   z


Ma trận biến đổi

1
0

T =
0

0

0
0
0  1 0

0 0 1

0
1

0
0

b. Đối xứng qua mặt phẳng xOz.
Là phép biến đổi mà giá trị của x và z trong vector vị trí khơng thay đổi.

Giá trị của y = -y.

Hình 5.16 Đối xứng qua mặt phẳng xOz
Cơng thức biến đổi.
 x'  x

 y'   y
z'  z


Ma trận biến đổi

1 0
0  1

T =
0 0

0 0

0 0
0 0
1 0

0 1

c. Đối xứng qua mặt phẳng yOz.
140



Đồ họa máy tính
Là phép biến đổi mà giá trị của y và z trong vector vị trí là khơng thay đổi. Giá
trị của x = -x

Hình 5.17 Đối xứng qua mặt phẳng zOy
Công thức biến đổi.
 x'   x

 y'  y
z'  z


Ma trận biến đổi.

 1
0

T =
0

0

0 0 0
1 0 0
0 1 0

0 0 1

d. Đối xứng qua mặt phẳng song với mặt phẳng gốc.
Để thực hiện phép đối xứng đối tƣợng qua một mặt phẳng song với mặt phẳng

gốc ta thực hiện các bƣớc sau:
Bƣớc 1: Tịnh tiến đối tƣợng sao cho mặt phẳng đối xứng trùng với mặt phẳng
tọa độ.
Bƣớc 2 : Thực hiện phép đối xứng qua mặt phẳng tọa độ.
Bƣớc 3 : Tịnh tiến về vị trí ban đầu.
Ví dụ: Đối xứng với mặt phẳng song song với mặt phẳng xOy.
Bƣớc 1: Dịch chuyển đối tƣợng sang hệ tọa độ tạm thời O‘x‘y‘z‘.
Với O‘z‘ cách Oz một khoảng là dz.

141


Đồ họa máy tính

1
0

Ma trận biến đổiT1 = 
0

0

0
0
0 1 0

0 dz 1

0
1


0
0

Bƣớc 2 : Thực hiện phép đối xứng qua mặt phẳng x‘O‘y‘.

1
0

Ma trận biến đổiT2 = 
0

0

0
0
0  1 0

0 0 1

0
1

0
0

Bƣớc 3 : Quay lại vị trí ban đầu.

1
0


Ma trận biến đổiT = 
0

0

0
0
0 1
0

0  dz 1

0
1

0
0

→ [ T ] = [ T1 ]* [ T2 ]* [ T3 ]

1
0

[T] = 
0

0

0

1

0 1
0 0
0 1 0  * 0
 
0 dz 1 0

1
0

[T] = 
0

0

0
1

0
0

0
0
0  1 0 *

0 0 1

0
1


0
0

1
0

0

0

0
0
0 1
0

0  dz 1

0
1

0
0

0
0
0  1 0

0 dz 2 1
0

0

e. Đối xứng với mặt phẳng song song với mặt phẳng xOz.
Bƣớc 1: Dịch chuyển đối tƣợng sang hệ tọa độ tạm thời O‘x‘y‘z‘.
Với O‘y‘ cách Oy một khoảng là dy.

1 0
0 1

Ma trận biến đổi[T1] = 
0 0

0 dy

0 0
0 0
1 0

0 1
142


Đồ họa máy tính
Bƣớc 2 : Thực hiện phép đối xứng qua mặt phẳng x‘O‘z‘.

1 0
0  1

Ma trận biến đổi[T2] = 
0 0


0 0

0 0
0 0
1 0

0 1

Bƣớc 3 : Quay lại vị trí ban đầu.

0
1
0
1

Ma trận biến đổi[T3] = 
0
0

0  dy

0 0
0 0
1 0

0 1

→ [ T ] = [ T1 ]* [ T2 ]* [ T3 ]


1 0
0 1

[T] = 
0 0

0 dy

0 0 1 0
0 0 0  1
1 0  * 0 0
 
0 1  0 0

0
1 0
0  1 0
[T] = 
0 0 1

2
0
0 dy

0 0 1
0


0 0  0
1

*
1 0  0
0
 
0 1 0  dy

0 0
0 0
1 0

0 1

0
0
0

1

f. Đối xứng với mặt phẳng song song với mặt phẳng yOz.
Bƣớc 1: Dịch chuyển đối tƣợng sang hệ tọa độ tạm thời O‘x‘y‘z‘.
Với O‘x‘ cách Ox một khoảng là dx.

1
0

Ma trận biến đổi[T1] = 
0

dx


0 0 0
1 0 0
0 1 0

0 0 1

Bƣớc 2 : Thực hiện phép đối xứng qua mặt phẳng y‘O‘z‘.

143


Đồ họa máy tính

 1
0

Ma trận biến đổi[T2] = 
0

0

0 0 0
1 0 0
0 1 0

0 0 1

Bƣớc 3 : Quay lại vị trí ban đầu.

 1

 0

Ma trận biến đổi[T3] = 
0

 dx

0 0 0
1 0 0
0 1 0

0 0 1

→ [ T ] = [ T1 ]* [ T2 ]* [ T3 ]

1
0

[T] = 
0

dx
1
 0

[T] = 
0
 2
dx


0 0 0  1
1 0 0  0
*
0 1 0  0
 
0 0 1  0

0 0 0  1
1 0 0  0
*
0 1 0  0
 
0 0 1  dx

0 0 0
1 0 0
0 1 0

0 0 1

0 0 0
1 0 0
0 1 0

0 0 1

5.3.6 Kết hợp các phép biến đổi affine ba chiều
Để kết hợp các phép biến đổi affine ba chiều, chúng ta cũng thực hiện tƣơng tự
nhƣ ở phép biến đổi hai chiều bằng cách dùng hệ tọa độ thuần nhất.
Bằng cách này chúng ta cũng có các kết quả tƣơng tự nhƣ trong trƣờng hợp

biến đổi hai chiều. Nếu M1 biến đổi P thành Q và M2 biến đổi Q thành S thì M1M2 sẽ
biến đổi P thành S, do đó ma trận kết hợp của nhiều phép biến đổi có thể đƣợc tính từ
việc nhân các ma trận của các phép biến đổi thành phần.
5.4. Các phép chiếu của vật thể trong không gian lên mặt phẳng
5.4.1. Định nghĩa chung
Đồ họa 3 chiều (3D computer graphics) bao gồm việc bổ sung kích thƣớc về
chiều sâu của đối tƣợng, cho phép biểu diễn chúng trong thế giới thực một cách chính
xác và sinh động hơn.
144


Đồ họa máy tính
Tuy nhiên các thiết bị truy xuất hiện tại đều là 2 chiều, do vậy việc biểu diễn
đƣợc thực thi thông qua phép tô trát (render) để gây ảo giác (illusion) về độ sâu.
Đồ hoạ 3D là việc chuyển thế giới tự nhiên dƣới dạng các mô hình biểu diễn
trên các thiết bị hiển thị thơng qua kỹ thuật tô trát (rendering).
Định nghĩa phép chiếu: phép chiếu là phép chuyển đổi những điểm của đối
tƣợng trong hệ thống tọa độ n chiều thành những điểm trong hệ thống tọa độ có số
chiều nhỏ hơn n.
Định nghĩa hình chiếu: Ảnh của đối tƣợng trên mặt phẳng chiếu đƣợc hình
thành từ phép chiếu bởi các đƣờng thẳng gọi là tia chiếu (projector) xuất phát từ một
điểm gọi là tâm chiếu (center of projection) đi qua các điểm của đối tƣợng giao với
mặt chiếu (projection plan).
Các bƣớc xây dựng hình chiếu
1. Đối tƣợng trong không gian 3D với tọa độ thực đƣợc cắt theo một không
gian xác định gọi là view volume.
2. View volume đƣợc chiếu lên mặt phẳng chiếu. Diện tích chốn bởi view
volume trên mặt phẳng chiếu đó sẽ cho ta khung nhìn.
3. Ánh xạ khung nhìn vào trong một cổng nhìn bất kỳcho trƣớc trên màn hình
để hiển thị hình ảnh.


Hình 5.15. Mơ hình ngun lý của tiến trình biểu diễn
đối tượng 3D
5.4.2. Phân loại phép chiếu
Các phép chiếu hình học phẳng đƣợc xây dựng trên cơ sở của 2 phép chiếu cơ
bản là phép chiếu song song và phép chiếu phối cảnh. Sự khác biệt của hai phép chiếu
là vị trí của tâm chiếu. Khi khoảng cách giữa tâm chiếu và mặt phẳng chiếu là hữu hạn
thì phép chiếu đó đƣợc gọi là phép chiếu phối cảnh. Khi khoảng cách giữa tâm chiếu
145


Đồ họa máy tính
và mặt phẳng chiếu là vơ hạn thì các tia chiếu đƣợc coi nhƣ song song với nhau và
phép chiếu đƣợc gọi là phép chiếu song song.
Việc phát triển của các phép biến đổi có 2 phƣơng pháp đƣợc sử dụng:
-

Thứ nhất: Khi tâm phép chiếu trùng với mắt ngƣời sử dụng là cố định và mặt
phẳng chiếu vng góc với hƣớng của mắt nhìn.

-

Thứ hai: Khi đối tƣợng là cố định và tâm chiếu tự do dịch chuyển trong không
gian 3D và mặt phẳng chiếu không nhất thiết vng góc với hƣớng nhìn.

Hình 5.16. Phân loại phép chiếu
5.4.3. Phép chiếu song song
Phép chiếu song song (Parallel Projections) là phép chiếu mà ở đó các tia chiếu
song song với nhau hay xuất phát từ điểm vô cùng.
Phân loại phép chiếu song song dựa trên hƣớng của tia chiếu (Direction Of

Projection)và mặt phẳng chiếu (projection plane).
1) Phép chiếu trực giao (Orthographic projection)

146


Đồ họa máy tính
Là phép chiếu song song và tia chiếu vng góc với mặt phẳng chiếu. Về mặt
tốn học, phép chiếu trực giao là phép chiếu với một trong các mặt phẳng toạ độcó giá
trị bằng 0. Thƣờng dùng mặt phẳng z = 0, ngoài ra x=0 và y=0.
Ứng với mỗi mặt phẳng chiếu ta có một ma trận chiếu tƣơng ứng.

1
0
[Ty]=
0
0

0
0
0
0

0
0
1
0

0
0

0
1

0
0
[Tx]=
0
0

0
1
0
0

0
0
1
0

0
0
0
1

1
0
[Tz]=
0
0


0
1
0
0

0
0
0
0

0
0
0
1

Hình 5.18 Phép chiếu trực giao
Thơng thƣờng thì ngƣời ta không sử dụng cả 6 mặt phẳng để suy diễn ngƣợc
hình của một đối tƣợng mà chỉ sử dụng một trong số chúng nhƣ: hình chiếu bằng,
đứng, cạnh.
Cả sáu góc nhìn đều có thể thu đƣợc từ một mặt phẳng chiếu thơng qua các
phép biến đổi hình học nhƣ quay, dịch chuyển hay lấy đối xứng.
Ví dụ: giả sử chúng ta có hình chiếu bằng trên mặt phẳng z=0, với phép quay
đối tƣợng quanh trục một góc 90o sẽ cho ta hình chiếu cạnh.
Đối với các đối tƣợng mà các mặt của chúng không song song với một trong
các mặt phẳng hệ toạ độ thì phép chiếu này khơng cho hình dạng thật của vật thể.
Muốn nhìn vật thể chính xác hơn ngƣời ta phải hình thành phép chiếu thông qua việc
quay và dịch chuyển đối tƣợng sao cho mặt phẳng đó song song với các trục toạ độ.

147



×