tìm hiểu về các nguyên thể trong đồ hoạ - Pdf 23

Một số ứng dụng đồ họa trong không gian
Chương I : TìM HIểU về các nguyên thể trong đồ hoạ
Hình ảnh được cÂu thành từ các nguyên thể cơ bản như điểm ảnh , đường
thẳng ,độ sáng ,màu sắc …
1 . Điểm :
1.1 Kh¸i niÖm :
Điểm là đơn vị nhỏ nhất trong chế độ đồ hoạ . Các chương trình đòi hỏi
độ chính xác và thẩm mü cao đều phảI truy xuất đến từng điểm ảnh .
1.2 . Thñ tôc vÏ mét ®iÓm :
Xây dựng trên cơ sở thủ tục vẽ một đoạn thẳng với hai đầu mót trùng nhau .
• Thủ tục Putpixel ( x,y :integer ; color : word) vẽ một ®iªmt tại toạ độ (x,y)
và chỉ số màu là color trên màn hình .
• Thủ tục GetPixel ( x,y :integer ) trả về chỉ số màu của điểm ảnh tại toạ
(x,y) .
• moveto ( x,y :integer ) : chuyển con trỏ đồ hoạ tới toạ độ x,y .
2 . Đường thẳng :
2.1. Định nghĩa :
Đường thẳng là nguyên thể nhỏ nhất trên thực tế . Đường thẳng là tập hợp
các điểm lân cận nhau một khoảng cách nhất định theo một phương nào
đó.
2.2. Một số thủ tục vẽ đường thẳng :
• Thủ tục Line (x,y,x
1
,y
1
) : vẽ một đường thẳng từ (x,y) đến ( x
1
, y
1
)
• Thủ tục Lineto (x,y) : vẽ đoạn thẳng từ vị trí con trỏ đến điểm ( x,y) .

1
)và (x
2
,y
2
).
Ta sẽ xây dựng thủ tục để xác định cửa sổ nh sau:
Cua so(x
1
,y
1
,x
2
,y
2
:real)
Trong đó :
+ x
1
:là hoành độ nhỏ nhất
+ x
2
:là hoành độ lớn nhất
+y
1
: là tung độ nhỏ nhất
+y
2
: là tung độ lớn nhất


máy tính .Giả sử ta thể hiện nội dung của nó lên một vùng hình chữ nhật của
màn hình.Ta gọi vùng màn hình này là tầm nhìn người xử lÝ.
Ta sẽ xây dựng một thủ tục để xác định tầm nhìn như sau:
Tầm nhìn (x
3
,x
4
,y
3
,y
4
:integer)
Trong đó :
Các tham biến là toạ độ các điểm xác định vùng hình chữ nhËtcña tầm
nhìn ,toạ độ này là toạ độ màn hình với trục y quay lên.
+x
3
:là hoành độ nhỏ nhất
+x
4
:là hoành độ lớn nhất
+y
3
: là tung độ nhỏ nhất
+y
4
: là tung độ lớn nhất
479
Màn hình VGA
Cửa sổ (x

, y
o
) trên cửa sổ lên điểm ( x
o
, y
o
) trên tầm nhìn lưu ý rằng ta định
nghĩa hệ toạ độ trên tầm nhìn là hệ toạ độ với trục tung y quay lên còn toạ độ
màn hình có chiều trục tung y quay xuống .
Trước hết cần tính tư lệ thu phóng trên trục x và trục y
• x
tl
= ( x
4
– x
3
) / ( x
2
– x
1
)
• y
tl
= (y
4
- y
3
) / (y
2
- y

, y
3
: hoành độ , tung độ nhỏ nhất của tầm nhìn
X
4
, y
4
: hoành độ , tung độ lớn nhất của tầm nhìn
5.2 . Nhiễu hình :Khi chiếu cửa sổ lên tầm nhìn các hình ảnh không còn
giữ nguyên được hình dạng ban đầu ,hình bị méo do tư lệ giữa đáy / chiều
cao của tầm nhìn và đáy /chiều cao của cửa sổ .
Không bị nhiễu hình : D/ H = D’ / H ’
Khi bị nhiễu hình : D / H <> D’ / H’
Đề tài thực tập tốt nghiệp
4
Một số ứng dụng đồ họa trong không gian
Trong đó : D : đáy ; H : chiều cao của cửa sổ
D’ : đáy tầm nhìn ; H’ :chiều cao tầm nhìn
Khi D, H là tầm nhìn cố định , với tầm nhìn khách nhau thì tầm nhìn khác
nhau thì dẫn đến nhiễu hình hoặc không nhiễu hình .
VD : Vẽ đường tròn có bán kính R= 4 trên cửa sổ D= 4 , H=4
+ Trên tầm nhìn (2,3,4,5) thì ta có D’ =1 ; H’=1 ; D/H= D’/H’ = 1/1
Không bị nhiễu hình
+ Trên tầm nhìn (1,1,8,3 ) ta có D’ =7, H’= 2 ; D’/H ’ = 7/2 mà D/H =6/6
D/H <> D’/H’ nên hình bị nhiễu ,có dạng :
Bị nhiễu hình
+ Trên tầm nhìn (1,3,4,7 ) ta có D’= 3 ; H’=4 ; D’/H’ =3/4 mà D/H = 6/6
D’/H’ <> D/H nên hình bị nhiễu ,có dạng :
Đề tài thực tập tốt nghiệp
5

khi một trong hai ,hoặc cả hai điểm nằm ngoài cửa sổ Clipping , đoạn
thaneg sẽ bị loại bỏ phần nằm ngoài cửa sổ Clipping .
VD :
Trước khi Clipping Sau khi Clipping
5.3.2 . Một số giảI thuật Clipping :
1 . GiảI thuật Cohen – Surtherland :
Thuật giải này giải giảI quyết bài toán làm thế nào để xác định phần
đoạn thẳng có trong cửa sổ . Theo Cohen thì một cửa sổ sẽ được chia
thành 9 phần ,mỗi phần được ứng với một mã 4 bít , 1 điểm P ( x,y ) bất
kỳ thuộc cửa sổ sẽ ứng với 1 mã 4 bít gọi là Kod : Kod (P) = b1b3b2b4 .
Trong đó : b
I
: (i=1 4 ) được xác định nh sau :
b 1 = 1 nếu P nằm bên trái cửa sổ
b 2 = 1 nếu P nằm bên phảI cửa sổ
b 3 = 1 nếu P nằm bên dưới cửa sổ
b 4 = 1 nếu P nằm bên trên cửa sổ
Đề tài thực tập tốt nghiệp
7
Một số ứng dụng đồ họa trong không gian

Nh vậy P (x,y ) bất kỳ thuộc mặt phẳng chiếu được xác định theo (1) nh
sau
Trong đó : b 1 : bít dấu của x- x
min

b 2 : bít dấu của x
max -
x
b3 : bít dấu của y

min
b2= 1 nếu x < x
max
b3= 1 nếu y < Y
max
b4 =1 nếu y < y
min

8
Một số ứng dụng đồ họa trong không gian
• Nội dung thuật giải Cohen – Sutherland :
Giả sử P1(x
1
,y
1
) , P2 (x2,y2) và cửa sổ ( x
min
,y
min
,x
max
, Y
max
)
• Bước 1 : Tính Kod (P1) và Kod (P2)
• Bước 2 : Nếu Kod (P1) = Kod(P2) =0000 thì nhảy đến bước b5 (P1P2 )
nằm trong cửa sổ .
• Bước 3 : Nếu Kod (P1) =Kod(P2) <> 0000 thì nhảy đến bước b6
(P1P2) nằm ngoài cửa sổ .
• Bước 4 : Nếu không thoả mãn 2 điều kiện trên thì thực hiện

max
–X
1
)/(X
2
-X
1
)
-
Nếu b3= 1 thì y
1
:= x
1
+ (X
2
- X
1
) * (Y
max
–Y
1
)/(Y
2
-Y
1
)
-
Nếu b4= 1 thì y
1
:= x

X
Y
9
Một số ứng dụng đồ họa trong không gian
Type
Code =array [1 4] of Byte ;
Var a
1
,a
2
,b
1
,b
2
: real ;
n , i , x
min
,y
min
, x
max
, gd ,gm :integer ;
b: code ;
Procedure Kt_dohoa ;
Begin
Gd: =detect ;
Init graph (gd,gm , ‘ \bgi ‘) ;
If graph result <> grOk then
Halt (1);
End ;

Tg:= y1 ;
y
1
:= y
2
;
y
2
:= tg ;
end ;
If (y
1
> y
min
) and ( y
1
< y
max
) and (y
2
> y
max
) then
Y
2
:= y
max
;
If ((y
2

Đề tài thực tập tốt nghiệp
10
Một số ứng dụng đồ họa trong không gian
Begin If x
1
> x
2
then
Begin tg: =x1;
x
1
:= x
2
;
x
2
:=tg ;
End;
If (x
1
< x
min
) and (x
2
> x
max
) then
Begin x
1
:= x

2
< x
max
) and ( x
1
< x
min
) then x
1
:=x
min
;
Line(round(x
1
) ; round( y
1
) ; round(x
2
) ;round(y
2
));
End;
End;
Procedure Kod( x, y:real ; var c :code ) ;
Begin for i:= 1 to 4 do b[ i] :=0 ;
If (x < x
min
) then b[1]:=1;
If (x > x
max

1
) ; Kod ( x
2
,y
2
; c
2
) ;
Tong1:=0; tong2:=0 ; mu1 :=1;
For i:=1 to 4 do
Begin
Tong1 := tong1 + c[i] *mu2 ;
Tong2 := tong2 + c[i] *mu2;
End ;
If tong1 +tong2 = 0 then
Begin Chon :=1 ;
Line ( Round(x
1
) ,Round( y
1
) , round( x
2
) ,

round (y
2
) );
End
Else if tong1 +tong2 <> 0 then
Begin chon :=2;

1
+ (x
min
– x
1
) * (y
2
– y
1
) / (x
2
- x
1
) ;
X
1
:= x
min
;
End ;
If b[2] = 1 then
Đề tài thực tập tốt nghiệp
12
Một số ứng dụng đồ họa trong không gian
Begin y
1
:= y
1
+ (x
min

– y
1
) ;
Y
1
: =y
min
;
End ;
If b[4] =1 then
Begin x
1
:= x
1
+ (y
max
- y
1
) * (x
2
– x
1
) /(y
2
– y
1
) ;
Y
1
: =y

Setcolor (white) ; Setlinestyle(1,0,0) ;
Line ( round ( a1) ,round ( b2 ) ,round ( a2 ) , round (b2 ) ) ;
Setlinestyle( 0,0,0 ) ;
If ( a1 <> a2 ) and ( b1 <>b2 ) then
Cohen_SutherlandClipping( a1 ,b1 ,a2 , b2 )
Else dacbiet( a1 ,b1 , a2 ,b2 );
Readln ; Closegraph ;
END .
Chương II
Đề tài thực tập tốt nghiệp
14
Một số ứng dụng đồ họa trong không gian
Các phép biến hình trong không gian
I.HÔ toạ độ trong không gian
Để định vị một điểm trong không gian ba chiều ta chọn hệ toạ độ đề các
hoặc hệ tạo độ cầu.
1.Hệ toạ độ đề các:
Gồm ba trục toạ độ ox,oy,oz vuông góc từng đôi . Khi chiếu vecter Om lên
các trục .
Z z
M(x,y,z)
Y
0 y
X
Người ta còn phân biệt hệ toạ độ Đề Các thuận và hệ Đề Các nghịch
1.1 Hệ toạ độ Đề Các sao cho khi quay cái vặn nút trai theo chiều từ OX sang
OY theo vuông góc góc thì chiều tiên của cái vặn nút chai trùng với

2
+y
2
z
M(x,y,z)
Z
0 φ y
ϕ Y
x
X

Hình 2.4 Mối quan hệ toạ độ Đề Các và hệ toạ độ cầu
Biết toạ độ Đề Các tính được toạ độ cầu theo công thức:
II.Các phép biến đổi
1.Giới thiệu:
Vấn đề cơ bản của các hệ thống đồ hoạ máy tính là khả năng mô phỏng dự
chuyển động của các đối tượng trong không gian hai chiều (2D) và ba chiều (3D) .
Các quá trình này bao gồm phép tịnh tiến ,phép quay,phép co dãn và phép lấy đối
xứng .Các phép tính toán dược mô tả dưới dạng công thức toán học để phù hợp với
xử lÝ máy tính .
Có hai cách nhìn trong công việc mô tả sự chuyển động của đối tượng .
Thứ nhất , đối tượng chuyển động trong một hệ toạ độ đứng yên. Biểu diÔnd-
íi dạng toán học của loại thứ nhất này qua cá phép chuyển đổi hình học áp
dụng với từng điểm cu¶ đối tượng .Thứ hai , đối tượng ®óng yên còn hệ toạ
độ di chuyển quan hệ với đối tượng .Do đó phải áp dụng các phép chuyển đổi
toạ độ để mô tả sự chuyển động .Chẳng hạn , « tô di chuyển trên đường .Lúc
này thì « tô di chuyển còn cảnh vật đứng yên .Do đó phải áp dụng các chuyển
đổi hình học để mô tả sự chuyển động này . Tuy nhiên , ta có thể nhìn trên
Đề tài thực tập tốt nghiệp
16

Bài toán : Cho M(x,y) được tịnh tiến theo v( a,b) tới M’ ,sau đó M’ được
tịnh tiến theo v’(a1,b1) tíi M’’.TiÕt lËp phÐp chuyÓn ®æi tõ M tíi M’’ nh
sau :
MM=v  M’M’’=v’
đặt F1=v => F=F1xF2

1 0 0 0 0 0
F1= 0 1 0 F2= 0 0 0

a b 1 a1 b1 1
0 0 0 0 0 0 0 0 0
F=F1xF2= 0 0 0 x 0 0 0 x 0 0 0
a b 1 a1 b1 1 a+a1 b+b1 1
Đề tài thực tập tốt nghiệp
17
Một số ứng dụng đồ họa trong không gian
=> (x’’,y’’,1)=(x,y,1).F
VD: Cho M(1,2), v(2,3), v’(1,1).Tính m’’
Nh trên ta có:
1 0 0 0 0 0
F1= 0 0 0 F2= 0 0 0
2 3 1 1 1 1
0 0 0 0 0 0 0 0 0
F=F1xF2= 0 0 0 x 0 0 0 = 0 0 0
2 3 1 1 1 1 3 4 1
(x’’,y’’,1)=(x,y,1).F
1 0 0 0 0 0 1 0 0
F= 0 2 0 x 0 0 0 = 0 2 0
0 0 1 3 4 1 3 4 1
M

x’=kx.x
y’=ky.y
Viết dưới dạng ma trận
[x’ y’ 1]=[ x y 1] x F

F= kx 0 0
0 ky 0

Chú ý :Phép này chủ yếu để vẽ đồ thị
Nịu kx=ky ta có phép co dãn đều , ngược lại có phép co dãn không đều
.
2.4 Phép đối xứng
Nịu một trong hai trục x và y được chọn làm trục để lấy đối xứng
Đối xứng qua trục OX x’=x

y’=y
Dạng ma trận có dạng :
 x’ y’ 1 = [ x y 1 ] x F
1 0 0
F= 1 -1 0
0 0 1
Đề tài thực tập tốt nghiệp
19
Một số ứng dụng đồ họa trong không gian
Y
M(1,1)
X
0

M’(1,-1)

x
(x-x1)
A-y1
Toạ độ của điểm H là nghiệp của hệ phương trình
Bx0-Ay0+Ay1-Bx1=0
Ax0+By0+c=0

y0
=- (Ax0+C)
B
Bx0+A
(Ax+C)
+Ay1-Bx1=0

B
B
2
x+A
2
+AC+ABy1-B
2
x1=0
X(B
2
+A
2
)=B
2
x1-AC-Aby1
Toạ độ của H là:

21
Một số ứng dụng đồ họa trong không gian
-1 0 0
=> 0 -1 0
2x0 2y0 1 M’(x’,y’)
3.Phép quay
Quay quang gốc toạ độ một góc α
α M(x,y)
R= OM = OM’ = OM = OM’ α
0
α
0
=(Ox,OM)
α =(OM,OM’)
x’=Rcos(α
0
+α)
=>
y’=Rsin(α
0
+α)
x’=R(cosαcosα0-sinαsinα0 (*)
=> y’=R(sinαcosα0 +cosαsinα0)
x=Rcosα0
=> (**)
y=rsinα0
Thay (**) vào (*)
x’=xcosα-ysinα
=>
y’=xsinα+ycosα

y1-y=-y0 y1=y-y0
Viết dưới dạng ma trận 1 0 0
F= 0 1 0
-x0 -y0 1
Quay M1(x1,y1)
R(0,
α
)
M2(x2,y2)
Theo định nghĩa phép tịnh tiến , hai vecter bằng nhau
Ta có:
M2M=OM0
x’-x0=x2 x’=x0+x2
=> 
y’-y0=y2 y’=y0+y2
Viết dưới dạng ma trận
1 0 0
F= 0 1 0
-x0 -y0 1
Gọi F là ma trận của phép quay
Ta có: F=F1.F2.F3
Cos sin
Đề tài thực tập tốt nghiệp
23
Một số ứng dụng đồ họa trong không gian
=> F= -sin cos
-x0cos +y0sin+b -x0sin-y0cos+y0
4.Các phép biến đổi đồ hoạ trong không gian ba chiều
4.1 Định nghĩa
Xét các điểm M(x,y,z) trong không gian . Qua một phép biến đổi nào đó

 y’-y=b  y’=y+b
z’-z=c z’=z+c
Từ đó suy ra ma trận F của phép tịnh tiến trong không gian:
Đề tài thực tập tốt nghiệp
24
Một số ứng dụng đồ họa trong không gian
1 0 0 0
0 1 0 0
F= 0 0 1 0
a b c 1 B’
VD:Tịnh tiến tam giác ABC theo vecter v(2,2,3)
Z A’
B C’
A
C
v(2,2,3)
Y
X
b.Phép co dãn tư lệ
Là quá trình co danx thay đổi theo các chiều của một đối tượng .Hệ số
co dãn kx,ky,kz theo các trục Ox,Oy,Oz xác định phép co dãn là phóng
to hay thu nhỏ .Phép co dãn tỉ lệ sẽ biến đổi toạ độ (x,y,z) thành toạ
độ (x’,y’,z’) theo công thÐc sau :

x’=kx.x
y’=ky.y
z’=kz.z
 x’ y’ z’ 1  = [ x y z 1 ] F
Viết dưới dạng ma trận ta có:
Từ đó suy ra ma trận F của phép co dãn tỉ lệ trong không gian


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status