Tài liệu Bài giảng Biểu diễn các đối tượng ba chiều: CHNG V
BIU DIN CÁC I TNG BA CHIU
5.1. MÔ HÌNH WIREFRAME
Mô hình WireFrame th hin hình dáng ca i tng 3D bng 2 danh sách :
• Danh sách các nh : lu t
a ca các nh.
• Danh sách các cnh : lu các c
p im u và cui ca tng cnh.
Các d nh và các cnh c ánh s th t cho thích hp.
Ví d: Biu din 1 cn nhà thô s (hình 5.1)
Danh sách các nh
Vector x y z
1 0 0 0
2 0 1 0
3 0 1 1
4 0 0.5 1.5
5 0 0 1
6 1 0 0
7 1 1 0
8 1 1 1
9 1 0.5 1.5
10 1 0 1
Có nhiu cách lu gi mô hình
WireFrame. ây, chúng ta dùng cu trúc record da trên 2 mng:
Const MaxDinh = 50; { S nh ti a}
MaxCanh = 100; {S cnh ti a}
Type ToaDo3D = record
x, y, z:real;
end;
WireFrame = Record
Hình 5.1
Chng V. Bi u di
n các i t
ng ba chiu
64
Sodinh: 0..MaxDinh;
Dinh: array [1..MaxDinh] of ToaDo3D;
Socanh : 0..Maxcanh;
Canh :array[1..Maxcanh, 1..2] of 1..M...
6 trang |
Chia sẻ: hunglv | Lượt xem: 1251 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Biểu diễn các đối tượng ba chiều, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHNG V
BIU DIN CÁC I TNG BA CHIU
5.1. MÔ HÌNH WIREFRAME
Mô hình WireFrame th hin hình dáng ca i tng 3D bng 2 danh sách :
• Danh sách các nh : lu t
a ca các nh.
• Danh sách các cnh : lu các c
p im u và cui ca tng cnh.
Các d nh và các cnh c ánh s th t cho thích hp.
Ví d: Biu din 1 cn nhà thô s (hình 5.1)
Danh sách các nh
Vector x y z
1 0 0 0
2 0 1 0
3 0 1 1
4 0 0.5 1.5
5 0 0 1
6 1 0 0
7 1 1 0
8 1 1 1
9 1 0.5 1.5
10 1 0 1
Có nhiu cách lu gi mô hình
WireFrame. ây, chúng ta dùng cu trúc record da trên 2 mng:
Const MaxDinh = 50; { S nh ti a}
MaxCanh = 100; {S cnh ti a}
Type ToaDo3D = record
x, y, z:real;
end;
WireFrame = Record
Hình 5.1
Chng V. Bi u di
n các i t
ng ba chiu
64
Sodinh: 0..MaxDinh;
Dinh: array [1..MaxDinh] of ToaDo3D;
Socanh : 0..Maxcanh;
Canh :array[1..Maxcanh, 1..2] of 1..MaxDinh;
end;
Khi ó, ta dùng mt bin mô t cn nhà :
Var House : WireFrame;
vi bin house trên, ta có th gán giá tr nh
sau:
With House Do
Begin
sodinh:=10;
socanh:=17;
dinh[1].x:=0;
dinh[1].y:=0;
dinh[1].z:=0;
...
canh[1, 1]:=1; {S nh th nht ca
cnh s 1}
canh[1, 2]:=2; {S nh th hai ca
cnh s 1}
...
end;
5.2. V MÔ HÌNH WIREFRAME VI CÁC
PHÉP CHIU
v mt i tng WireFrame, ta v tng
cnh trong danh sách các cnh ca mô hình. Vn là làm th nào v 1 !ng
th"ng trong không gian 3 chiu vào m
t ph"ng?
làm iu này, ta phi b# bt i 1 chiu trong mô hình biu din, tc là ta phi
dùng phép chiu t 3D → 2D .
Danh sách các cnh
Cnh nh u nh cui
1 1 2
2 2 3
3 3 4
4 4 5
5 5 1
6 6 7
7 7 8
8 8 9
9 9 10
10 10 6
11 1 6
12 2 7
13 3 8
14 4 9
15 5 10
16 2 5
17 1 3
Chng V. Bi u di
n các i t
ng ba chiu
65
K$ thu%t chung v mt !ng th"ng 3D là:
Chiu 2 im u mút thành các im 2D.
V !ng th"ng i qua 2 im va c chiu.
Sau ây là th tc xác nh hình chiu ca mt im qua phép chiu phi cnh:
Procedure Chieu(P3D:ToaDo3D; E:Real; Var P2D:ToaDo2D);
Var t:Real;
Begin
If (P3D.x >=E) OR (E=0) Then
Writeln(‘im nm sau mt ho c mt nm trên m t ph
ng
nhìn’);
Esle
Begin
t := 1/(1 - P3D.x/E);
P2D.y := t*P3D.y;
P2D.z := t*P3D.z;
End;
End;
5.3. V CÁC MT TOÁN HC
Ta s v các m
t cong da trên phng trình tham s ca các m
t ó.
Ví d:
(a) (b) (c)
Hình 5.2
• M
t Ellipsoid: (hình 5.2.a)
x=Rx.cos(u).cos(v)
y=Ry.sin(u).cos(v)
Chng V. Bi u di
n các i t
ng ba chiu
66
z=Rz.sin(v)
Trong ó: 0≤ u ≤ 2pi -pi/2 ≤ v ≤ pi/2
• M
t Hypeboloid: (hình 5.2.b)
x=u
y=v
z=u
2
- v
2
Trong ó u,v ∈[-1,1]
• Hình xuyn: (hình 5.2.c)
x=(R + a.cos(v)).cos(u)
y=(R + a.cos(v)).sin(u)
z= a.sin(v)
Trong ó: 0≤ u ≤ 2pi -pi/2 ≤ v ≤ pi/2
• Hình tr tròn (Cylinder)
x = R.cos(u)
y = R.sin(u)
z = h
• Hình nón (Cone)
p(u,v) = (1-v).P0 + v.P1(u)
trong ó:
P0: nh nón
P1(u): !ng tròn
=
=
)sin(.
)cos(.
uRy
uRx
u,v ∈ [0,1]
• Cho Parabol (Paraboloid)
x = a.v.cos(u)
y = b.v.sin(u) u∈[-pi,pi], v ≥ 0
z = v
2
Phng pháp chính ây c&ng là v các !ng vin theo u và v.
Chng V. Bi u di
n các i t
ng ba chiu
67
v mt !ng vin u ti giá tr u’ khi v chy t VMin n VMax ta làm nh
sau:
• To mt t%p hp các giá tr v[i] ∈ [VMin ,VMax], xác nh v trí P[i] =
(X(u’,v[i]), Y(u’,v[i]), Z(u’,v[i])).
• Chiu tng im P[i] lên m
t ph"ng.
• V các !ng gp khúc da trên các im 2D P’[i].
Sau ây là th tc v h
!ng cong theo u:
Procedure HoDuongCongU;
Var P: ToaDo3D;
u,v,du,dv:Real;
Begin
u:=UMin; du:=0.05; dv:=0.05;
While u<=UMax do
Begin
v:=Vmin;
P.x:=fx(u,v);
P.y:=fy(u,v);
P.z:=fz(u,v);
DiDen(P); { i n im xut phát ban
u }
While v<=VMax do
Begin
v:=v+dv;
P.x:=fx(u,v);
P.y:=fy(u,v);
P.z:=fz(u,v);
VeDen(P); { V n im mi }
End;
u:=u + du;
End;
End;
Tng t, ta có th v h
!ng cong theo v.
Chng V. Bi u di
n các i t
ng ba chiu
68
TÓM LI: Mun v mt m
t cong, ta thc hin các bc sau
• Nh%p các h s ca phng trình m
t: a, b, c, d, Umin, Umax, Vmin, Vmax.
• Tính các hàm 2 bin: X(u,v), Y(u,v), Z(u,v).
• Khi to phép chiu: Song song/Phi cnh.
• V h
!ng cong u.
V h
!ng cong v.
BÀI TP
1. Hãy xây dng mt cu trúc d liu lu tr mô hình WireFrame.
2. To file text lu các nh và cnh ca mt v%t th trong không gian 3D theo mô
hình WireFrame vi cu trúc nh sau:
Dòng u tiên cha hai s nguyên m, n dùng lu s nh và s cnh ca mô
hình.
m dòng tip theo, m'i dòng lu t
a x, y, z ca tng nh trong mô hình.
n dòng tip theo, m'i dòng lu hai s nguyên là nh u và nh cui ca tng
cnh trong mô hình.
3. Vit th tc
c các giá tr trong file text lu vào mô hình WireFrame.
4. Vit th tc v v%t th t mô hình WireFrame.
5. Vit chng trình biu din các khi a din sau: T din u, Khi l%p phng,
Bát din u, Th%p nh din u, Nh th%p din u.
6. Vit chng trình mô ph#ng các m
t toán h
c: yên nga, m
t cu, hình xuyn...
Các file đính kèm theo tài liệu này:
- _giaotrinhlythuyetdohoach5.pdf