1. Trang chủ
  2. » Công Nghệ Thông Tin

Đồ họa máy tính - Chương 2 Các phép biến đổi hình trên hệ toạ độ - Bài 5 pot

7 559 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 256,54 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ở ví dụ trên ta có thể vẽ đồ thị của nhiều hàm số khác nhau mà không cần lập lại chương trình, mà chỉ cần thay hàm mới gán lại các giá trị của Xmin, Xmax và Ymin, Ymax tức là đưa bài toá

Trang 1

ở ví dụ trên ta có thể vẽ đồ thị của nhiều hàm số khác nhau mà không cần lập lại chương trình, mà chỉ cần thay hàm mới gán lại các giá trị của Xmin, Xmax và

Ymin, Ymax tức là đưa bài toán về tìm giá trị lớn nhất và nhỏ nhất của hàm số ở trên đoạn [Xmin, Xmax]

Tương tự như vậy ta cũng có thể áp dụng cho chương trình mô tả các phép biến hình

để hình vẽ có thể được phóng to lên đầy màn hình

Bμi tập :

1 Lập chương trình vẽ đồ thị của các hàm đã biết

2 Lập chương trình mô tả phép biến một đoạn thẳng thành một đoạn thẳng qua các phép biến hình đã nói ở trên

3 Lập chương trình mô tả phép biến một đa giác thành một đa giác qua các phép biến hình đã nói ở trên

4 Lập chương trình mô tả phép biến một đường tròn thành một đường tròn qua các phép biến hình đã nói ở trên

5 Lập chương trình mô tả phép biến một đường Elip thành một đường Elip qua các phép biến hình đã nói ở trên

6 Lập chương trình mô tả phép biến một đường Hypebol thành một đường Hypebol qua các phép biến hình đã nói ở trên

$5 Các phép biến đổi trong không gian 3 chiều

1 Phép tịnh tiến trong không gian 3 chiều

Giả sử trong hệ toạ độ OXYZ có điểm P(x,y,z) cần phải tịnh tiến điểm p theo vectơ T(tx,ty,tz) khi đó ta được điểm P'(x',y',z') được suy tương tự như trong không gian 2 chiều ta có:

( ,′ ′ ′ =, , ) ( , , , )ì

x y z x y z

tx ty tz

1 0 0 0

0 1 0 0

0 0 1 0

1

=op T tx ty tz ( , , )

2 Phép quay trong không gian ba chiều

Trực tiếp suy từ trường hợp 2 chiều Giả sử có vectơ → op=(x,y,z) cần phải quay → op quanh trục Ox một góc ϕ, ta được vectơ → ′ op =(x',y',z') xác định theo công thức:

Trang 2

( , , , ) ( , , , ) cos sin

ư

x y z 1 x y z 1

ϕ ϕ = → op R x ( , ) ϕ

Tương tự nếu quay →

op quanh trục Oy thì →′ op được xác định theo công thức sau:

( , , , ) ( , , , )

ư

x y z 1 x y z 1

→ op ′ = → op R y ( , ) ϕ Phép quay quanh trục OZ

Tương tự nếu quay →

op quanh trục OZ thì →′ op được xác định theo công thức sau:

( , , , ) ( , , , )

x y z 1 x y z 1

→′ = →

op op R z ( , )ϕ

3 Phép co gi∙n trong không gian 3 chiều

Giả sử trong hệ toạ độ OXYZ trục OX co giãn với hệ số lx,OY co giãn với hệ số ly, trục OZ co giãn với hệ số lz, khi đó trong hệ toạ độ OXYZ ta có → ′ op được xác định theo công thức sau:

( ′ ′ ′ , , , ) = ( , , , ) ì

lx ly

Trang 3

Giả sử cho mặt phẳng Π xác định bởi ax+by+cz=d và cho điểm P hãy tìm P' đối xứng với P qua mặt phẳng Π

Gọi → n là véctơ pháp tuyến của Π : → n =(a,b,c)

Gọi Q là điểm thuộc Π sao cho PQ ⊥ Π

Q=(x

1,y1,z1) , P=(x,y,z)

⇒ → = →

pq α.n ⇒x-x

1=αa; y-y1=αb; z-z1=αc vì Q∈Π → ax

1+by1+cz1=d

⇒ a(x-αa)+b(y-αb)+c(z-αc)=d

a2 b2 c

x

1= x-αa; y1= y-αb; z1= z-αc do đó ta xác định được Q

Sau khi xác định Q để xác định P' ta hãy tịnh tiến P theo vectơ 2→ pq

P'=P ì T(2.(x

1 -x), 2.(y 1 -y), 2.(z 1 -z))

5 Cách vẽ hình 3 chiều trên màn hình máy tính :

a Hệ toạ độ trong không gian ba chiều :

Trong không gian 3 chiều người ta hay dùng 2 hệ toạ độ đó là hệ toạ độ tay phải và

hệ toạ độ tay trái :

Trang 4

Trong máy tính, khi thì ta dùng hệ toạ độ tay phải, khi thì ta dùng hệ toạ độ tay trái (nh− khi dùng các thuật toán để xử lý các hình khuất mặt khuất theo độ sâu, có nghĩa là nếu một điểm nào đó có toạ độ theo trục Oz càng lớn thì điểm ấy nằm càng sâu) Để biểu diễn một điểm trong không gian 3 chiều ta phải đ−a nó về không gian

2 chiều, Và cách đ−a về dạng biểu diễn trong không gian 2 chiều nh− sau

b Đ−a một điểm biểu trong không gian 3 chiều sang 2 chiều :

Trang 5

Procedure 3D_To_2D(P3D : Point_3D; Var P2D : Point_2D);

Begin

P2D.x := P3D.x - P3D.z * Cos(G);

P2D.y := P3D.y - P3D.z * Sin(G);

End;

Và sau đó ta thực hiện cách vẽ hình trong không gian 2 chiều như đã hướng dẫn ở bài trước

Ví dụ : Vẽ đường cong x=Sin(t), y=Cos(t), z=Sin(t)*Cos(t)

Program Duong_ba_chieu;

Uses Crt, Graph;

Type

Point_2D = Record

x, y : Real;

End;

Point_3D = Record

x, y, z : Real;

End;

Const

Xmin: Real=0;

Ymin: Real=0;

Zmin: Real=0;

Xmax: Real=639;

Ymax: Real=479;

Zmax: Real=479;

MaxX: Integer=600;

MaxY: Integer=440;

G : Real=PI/4;

Var

m,n : Integer;

ch: char;

CGx,CGy,x,y,z,t,b,Xgoc,Ygoc : Real;

p1,p2 : Point_2D;

p3 : Point_3D;

(*********************)

Procedure C3_2(p : Point_3D; Var q : Point_2D);

Begin

q.x:=p.x-p.z*Cos(G);

q.y:=p.y-p.z*Sin(G);

End;

(*********************)

Procedure WTV(p : Point_2D; Var q : Point_2D);

Begin

q.x:=p.x*CGx;

q.y:=p.y*CGy;

Trang 6

End;

(*********************)

Procedure VTS(p : Point_2D; Var q : Point_2D);

Begin

q.x:=Xgoc+p.x;

q.y:=Ygoc-p.y;

End;

(********************)

Procedure He_Truc;

Begin

SetLineStyle(1,0,1);

Line(Round(Xgoc),0,Round(Xgoc),GetMaxY);

Line(0,Round(Ygoc),GetMaxX,Round(Ygoc));

Line(0,Round(Ygoc+Xgoc),639,Round(Ygoc+Xgoc)-639);

SetLineStyle(0,0,1);

End;

(*********************)

Procedure bp(t: Real; Var p : Point_3D);

Begin

p.x:=Sin(t); p.y:=Cos(t); p.z:=Sin(t)*Cos(t);

end;

(*********************)

Begin

clrscr;

m:=0;

InitGraph(m,n,'c:\tp\bgi');

DirectVideo:=False;

MaxX:=GetMaxX;

MaxY:=GetMaxY;

b:=2*pi/360;

Xmin:=-1; Xmax:=1;

Ymin:=-1; Ymax:=1;

Zmin:=-1/2; Zmax:=1/2;

Xmin:=Xmin+Zmin*Sin(G);

Xmax:=Xmax+Zmax*Cos(G);

Ymin:=Ymin+Zmin*Sin(G);

Trang 7

Ymin:=CGy*Ymin;

Ymax:=CGy*Ymax;

Xgoc:=0;

If Xgoc>Xmin Then Xgoc:=Round(ABS(Xmin));

Ygoc:=0;

If Ygoc<Ymax Then Ygoc:=Round(ABS(Ymax));

He_Truc;

t:=0;

bp(t,p3);

C3_2(p3,p1);

WTV(p1, p2);

p1:=p2;

VTS(p2, p2);

MoveTo(Round(p2.x),Round(p2.y));

Repeat

bp(t,p3);

C3_2(p3,p1);

WTV(p1, p2);

p1:=p2;

VTS(p2, p2);

LineTo(Round(p2.x),Round(p2.y));

t:=t+b;

Until t>2*pi+b;

Readln;

CloseGraph;

End

Bμi tập :

1 Thực hiện các phép tịnh tiến, phép quay, phép co dãn cho một đoạn thẳng

2 Thực hiện các phép tịnh tiến, phép quay, phép co dãn cho một tứ diện

3 Thực hiện các phép tịnh tiến, phép quay, phép co dãn cho một hình hộp chữ nhật

4 Vẽ các đường cong ba chiều đã biết

5 Quay đường một đường thẳng quanh các trục để được mặt nón tròn xoay

6 Quay đường cong ba chiều đã biết quanh các trục để được các mặt tròn xoay

7 Quay đoạn thẳng PQ quanh trục toạ độ OX một góc α

8 Quay đoạn thẳng PQ quanh trục toạ độ OY một góc α

9 Quay đoạn thẳng PQ quanh trục toạ độ OZ một góc α

10 Cho điểm M(x,y,z) hãy xác định M sau khi quay nó quanh trục đi qua đoạn thẳng PQ cho trước

Ngày đăng: 24/07/2014, 10:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w