Bài giảng Biểu diễn các đối tượng ba chiều

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 c nh : lu các c p im u và cui ca tng c nh. Các d nh và các c nh 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...

pdf6 trang | Chia sẻ: hunglv | Lượt xem: 1146 | Lượt tải: 0download
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 c nh : lu các c p im u và cui ca tng c nh. Các d nh và các c nh 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 m t 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 c nh s 1} canh[1, 2]:=2; {S  nh th hai ca c nh s 1} ... end; 5.2. V MÔ HÌNH WIREFRAME VI CÁC PHÉP CHIU  v m t i tng WireFrame, ta v tng c nh trong danh sách các c nh 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 c nh C nh  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 m t !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 m t 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 m t !ng vin u t i giá tr u’ khi v ch y t VMin n VMax ta làm nh sau: • T o m t 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 xu t 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 m t 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 t o 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 m t cu trúc d liu  lu tr mô hình WireFrame. 2. T o file text  lu các  nh và c nh ca m t 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 c nh 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 c nh 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:

  • pdf_giaotrinhlythuyetdohoach5.pdf
Tài liệu liên quan