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

Đồ họa máy tính - Chương 4 Kỹ thuật xử lý hình khuất - Bài 13 ppt

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 (258.9 KB, 6 trang )

Kỹ thuật Đồ hoạ máy tính
73
q[1]:=x1-xmin; q[2]:=xmax-x1; q[3]:=y1-ymin; q[4]:=ymax-y1;
For k:=1 To 4 Do
Begin
t:=q[k]/p[k];
If p[k]<0 then If t1<t Then t1:=t;
If p[k]>0 then If t2>t then t2:=t;
End;
If t1<=t2 then
Begin
xw1:=x1+t1*dx; yw1:=y1+t1*dy;
xw2:=x1+t2*dx; yw2:=y1+t2*dy;
Line(Round(xw1),Round(yw1),Round(xw2),Round(yw2));
End;
End;
(*****************************)
Begin
Clrscr;
write('Nhap (xmin,ymin): '); readln(xmin,ymin);
write('Nhap (xmax,ymax): '); readln(xmax,ymax);
write('Nhap (a1,b1): '); readln(a1,b1);
write('Nhap (a2,b2): '); readln(a2,b2);
gd:=detect;
Initgraph(gd,gm,'C:\tp\bgi');
setcolor(White);
setlinestyle(1,0,0);
Line(Round(a1),Round(b1),Round(a2),Round(b2));
setlinestyle(0,0,0);
If (a1<>a2) And (b1<>b2) Then Liang_Barsky_Clipping(a1,b1,a2,b2)
Else Special_Line(a1,b1,a2,b2);


settextjustify(1,1);
outtextxy(320,450,'HIEN THI MOT DOAN THANG TRONG MOT CUA SO
CHO TRUOC');
outtextxy(320,470,'THEO THUAT TOAN LIANG_BARSKY');
rectangle(xmin,ymin,xmax,ymax);
Readln;
Closegraph;
End.


$13. Vùng nhìn thấy
Trong khi quan sát các vật thể trong không gian chúng ta gặp hai tình huống sau:
1. Từ vị trí quan sát chúng ta có thể nhìn thấy một phần hay không nhìn thấy vật thể.
Điều này phụ thuộc vào vị trí và góc nhìn của ngời quan sát đối với vật thể
Kỹ thuật Đồ hoạ máy tính
74
2. Từ vị trí ngời quan sát khi có nhiều vật thể thì có thể có vật thể nhìn thấy toàn
bộ, một phần hoặc không nhìn thấy
Bài toán đặt ra là cần phải thể hiện phần không bị khuất của các vật thể tuỳ theo vị
trí và góc độ quan sát của ngời quan sát
1. Mô tả vùng quan sát
Để dễ hình dung, chúng ta có thể giả sử ngời quan sát có một máy ảnh, ống kính
của máy ảnh hớng theo trục OZ mặt phẳng chiếu là diện tích của tấm phim
trong buồng tối có kích thớc 2u x 2w khoảng cách từ mắt ngời quan sát đến mặt
phẳng chiếu là v=EO.
Ta gọi vùng nhìn thấy đợc của ngời quan sát là hình chóp vô hạn có đỉnh E và các
cạnh là các đờng thẳng đi qua đỉnh E và có hớng là:













u
v
wu
v
w
v
uw
v
uw++ +


+


,,,,
Ví dụ:
e
p
eo o
p
eouwvuw










33
=
+
=
+
+
=
+
+
.

Nói chung điểm E vị trí của ngời quan sát có thể là một điểm tuỳ ý trong không
gian, giả sử E(x
e
,y
e
,z
e
) các vectơ




u
v
w,, vuông góc với nhau từng cặp và P(x,y,z)
là một điểm nào đó, hãy xác định hình chiếu P' của P lên mặt phẳng chiếu qua
tâm E
Từ hình vẽ dễ dàng nhận xét:


v
ep

=
cos
()


=

==ep
v
ep
ep
ep v
ep
ep v








1
.cos
cos
.



Z
w
P
2
P
3
u
P
4
E
O
P
1
v

P
u
w
v
O

P'
E
Kỹ thuật Đồ hoạ máy tính
75
()


=ep
ep
ep v




.
().1

Công thức (1) cho chúng ta cách xác định P' thông qua vectơ ep

và véctơ

v

Ta có thể xác định P' theo một công thức khác
ep v op




=

+
'
Trên mặt phẳng ta có:
op x e
y
e
uw



'
=

+


ở đây






e
u
u
e
w
w
xy

uw
==

,,, là toạ độ của P' trong hệ toạ độ Ouw


=
+

+

ep v x e
y
e
uw




()2
hay
ep x y
e
e
v
u
v






=











(,,) ()13

Nhân (2) lần lợt với



ee v
uw
,, ta suy ra:

=


=
=






xepe
yepe
vv epv
u
w




.
.

()4

thay
ep
ep
ep v




=
(.)

Ta có:


=

=







x
ep e
ep v
y
ep e
ep v
u
w
(. )
(.)
(. )
(.)
()





5


Công thức (5) là tọa độ x',y' cần tìm của P' trên mặt phẳng
Chú ý:
Công thức (5) không xác định khi ep
v


. =0. Điều này có nghĩa là P nằm trên mặt
phẳng song song với và đi qua tâm chiếu E.
Trong công thức (5) nếu
ep
v


. <0 điều này có nghĩa góc của ep



v
lớn hơn 90
o
.
Có nghĩa điểm P nằm về phía sau tâm chiếu do đó P không nằm trong vùng nhìn
thấy, nh vậy không thể có P'
Trong công thức (5) nếu
ep
v


. >0 điều này chứng tỏ P thuộc vùng nhìn thấy và x',y'

là đợc xác định
Kỹ thuật Đồ hoạ máy tính
76
-ux'u, -wy'w
2. Chuyển hệ toạ độ thực về hệ toạ độ quan sát
Chúng ta gọi hệ toạ độ mô tả đối tợng là hệ toạ độ thực hay hệ toạ độ cho
trớc ký hiệu là OXYZ, gọi hệ toạ độ quan sát là hệ toạ độ ngời quan sát dùng để
quan sát đối tợng ký hiệu là O'X'Y'Z'. Trong hệ toạ độ quan sát ta giả sử ngời
quan sát quan sát đối tợng theo hớng O'Z' và ở vị trí cách O' một đơn vị
O
Y
X'
X
Z
Z'
O'
Y
'
E(X
E
,Y
E
,Z
E
)


Nếu hệ toạ độ thực OXYZ cha trùng với hệ toạ độ quan sát ta cần phải thực hiện
các phép biến đổi tịnh tiến và quay để đa hệ toạ độ thực về hệ toạ độ quan sát.
3. Mô tả vật thể

a. Mô hình khung giây (Wireframe)
Một mô hình Wireframe thể hiện hình dáng của đối tợng 3 chiều bằng 2 danh sách,
một danh sách các đỉnh và một danh sách các cạnh. Danh sách các đỉnh lu giữ toạ
độ các đỉnh của đối tợng và đợc đánh số thự tự thích hợp, danh sách các cạnh lu
giữ số thứ tự của cặp các điểm đầu và cuối của mỗi cạnh
Ví dụ : Danh sách các đỉnh và các cạnh của một hình lập phơng
Danh sách các đỉnh
Đỉnh x y z
1
0 0 0
2
0 100 0
3
0 100 100
4
0 0 100
5
100 0 0
6
100 100 0
7
100 100 100
8
100 0 100
Danh sách các cạnh
Cạnh đỉnh 1 đỉnh 2
1
1 2
2
2 3

3
3 4
Kỹ thuật Đồ hoạ máy tính
77
4
4 1
5
5 6
6
6 7
7
7 8
8
8 5
9
1 5
10
2 6
11
3 7
12
4 8

Vẽ hình lập phơng theo mô hình trên
b. Mô hình đa giác (Polygon Method)
Không có gì khác nhau giữa mô hình đa giác và mô hình Wireframe. Mô hình đa
giác thể hiện hình dáng của đối tợng 3 chiều bằng 2 danh sách, một danh sách các
đỉnh và một danh sách các mặt. Danh sách các đỉnh lu giữ toạ độ các đỉnh của đối
tợng và đợc đánh số thự tự thích hợp, danh sách các mặt lu giữ số thứ tự của các
đỉnh lần lợt là các đỉnh của mỗi mặt

Ví dụ : Danh sách các đỉnh và các mặt của một hình lập phơng
Danh sách các đỉnh
Đỉnh x y z
1
0 0 0
2
0 100 0
3
0 100 100
4
0 0 100
5
100 0 0
6
100 100 0
7
100 100 100
8
100 0 100
Danh sách các mặt
Kỹ thuật Đồ hoạ máy tính
78
Mặt Các đỉnh
1
1 2 3 4
2
5 6 7 8
3
1 2 6 5
4

2 3 7 6
5
3 4 8 7
6
4 1 5 8

Vẽ hình lập phơng theo mô hình trên
Bài tập : Biểu diễn các khối đa diện đều và viết chơng trình minh hoạ :
1. Tứ diện đều
2. Khối lập phơng
3. Bát diện đều (8 mặt, mỗi mặt là một tam giác đều, 1 đỉnh kề 4 mặt)
4. Nhị thập diện đều (20 mặt, mỗi mặt là một tam giác đều, 1 đỉnh kề 5 mặt)
5. Thập nhị diện đều (12 mặt, mỗi mặt là một ngũ giác đều, 1 đỉnh kề 3 mặt)
6. Biểu diễn hình lăng trụ và viết chơng trình minh hoạ


$14. Xác định đờng khuất mặt khuất
Để có thể tạo ra ảnh nổi trong không gian 3 chiều ngời ta phải bỏ đi các mặt khuất
đờng khuất hoặc dựa vào màu sắc để tạo nên độ sáng tối khác nhau, điều này dẫn
đến bài toán xác định mặt khuất đờng khuất trong kỹ thuật đồ hoạ
1. Xác định phía trớc phía sau của một mặt
Giả sử cho một vật thể trong không gian 3D đợc giới hạn bởi các mặt là các đa giác

Một mặt giới hạn cùng vật thể là phần giới hạn của mặt phẳng chứa đa giác đó giả
sử mặt phẳng có phơng trình:

×