1. Trang chủ
  2. » Thể loại khác

Do hoa may tinh (de 2) - Giai ppt

5 802 15

Đ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 5
Dung lượng 75,5 KB

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

Nội dung

- Đường cong Bezier luôn đi qua điểm điều khiển đầu và cuối, vì vậy điểm A và D thuộc đường cong Bezier.. - Các điểm thuộc đường cong sẽ có tọa độ thỏa mãn công thức:.. ==> Tóm lại sẽ có

Trang 1

Đồ họa máy tính (đề 2) Câu 1:

a, Viết thủ tục vẽ đoạn thẳng trong trường hợp m thuộc (1,+)

Procedure ve(x1,y1,x2,y2:real);

Var x, y, dx, dy, p, const1, const2 : real;

i : integer;

Begin

If (y1>y2) then

Begin

X:=x1; y:=y1;

X1:=x2; y1:=y2;

X2:=x; y2:=y;

End;

Dx:=x2-x1; dy:=y2-y1;

P:=2*dx-dy;

Const1:=2*dx-2*dy;

Const1:=2*dx;

X:=x1;

Y:=y1;

Putpixel(x,y,red);

y:=y+1;

For i:=y1 to y2 do

Begin

If (p>0 )then Begin

X:=x+1;

P:=p+const1;

End Else

P:=p+const2;

Putpixel(x,y,red);

Y:=y+1;

End;

End;

b, Tính tọa độ các điểm thuộc đoạn thẳng AB với A(15; 10), B(5; 5)

- Tính hệ số góc:

m = (y2-y1)/(x2-x1) = (5-10)/(5-15) = 1/2 (m ∈ (0; 1])

Xa >Xb đổi chỗ cho A và B > A(5,5), B(15,10)

Dx = x2 - x1 = 10

Dy = y2 - y1 = 5

P = 2dy - dx = 10 - 10 = 0

Trang 2

Const1 = 2dy - 2dx = 10 - 20 = -10

Const2 = 2dy = 10

Lập bảng các điểm thuộc đoạn thẳng AB

Câu 2:

Viết chương trình mô phòng đồ thị hàm số y=x 3 + 3 với x [-3, 3] và ảnh của

nó qua phép đối xứng qua trục x=2, trên khung nhìn tùy chọn.

Uses crt,graph;

Var gd, gm : integer;

xw1, xw2, yw1, yw2, tlx, tly : real;

xv1, xv2, yv1, yv2 : integer;

Procedure cuaso(x1,y1,x2,y2:real);

Begin

Xw1:=x1;

Xw2:=x2;

Yw1:=y1;

Yw2:=y2;

End;

Procedure khungnhin(x1,y1,x2,y2:integer);

Begin

Xv1:=x1;

Xv2:=x2;

Yv1:=y1;

Yv2:=y2;

Tlx:=(xv2-xv1)/(xw2-xw1);

Tly:=(yv2-yv1)/(yw2-yw1);

End;

Procedure chuyenhequansat(x,y:real; var x1,y1:integer);

Begin

X1:=round(tlx*(x-xw1)+xv1);

Y1:=round(tly*(yw2-y)+yv1);

End;

Procedure chuyenden(x,y:real);

Var xm,ym:integer;

Begin

Trang 3

Moveto(xm,ym);

End;

Procedure veden(x,y:real);

Var xm,ym:integer;

Begin

Chuyenhequansat(x,y,xm,ym);

lineto(xm,ym);

End;

(* Tìm ma trận phép biến đôi lấy tịnh tiến}

- Tịnh tiến x=2 về 0y

X’= x-2

=

1 0 2

0 1 0

0 0 1 1

T

- Lấy đối xứng qua trục 0y

x’= x

=

1 0 0

0 1 0

0 0 1 2

T

- Tịnh tiến trở lại

x’=x+2

 +

=

1 0 2

0 1 0

0 0 1 3

T

Nhân 3 ma trận trên lại, ta được:

x’=-x+4

−

=

=

1 0 4

0 1 0

0 0 1 3 2 1

4 T xT xT T

*)

Procedure laydoixung(x,y:real; var xm,ym:real);

Begin

Xm:= -x+4;

Ym:=y;

End;

Procedure chuyendendx(x,y:real);

Var x1,y1 : real;

x2,y2:integer;

Begin

Laydoixung(x,y,x1,y1);

Chuyenhequansat(x1,y1,x2,y2);

Moveto(x2,y2);

End;

Trang 4

Procedure vedendx(x,y:real);

Var x1,y1 : real;

x2,y2:integer;

Begin

Laydoixung(x,y,x1,y1);

Chuyenhequansat(x1,y1,x2,y2);

lineto(x2,y2);

End;

Begin

Gd:=0;

initgraph(gd, gm, ' \bgi');

Cuaso(-3,-24, 3, 31);

Khungnhin(150, 150, 300, 250);

rectangle(150, 150, 300, 250);

Dx:= 0.01;

X := xw1;

Y := x*x*x + 3;

Chuyenden(x,y);

{ve do thi}

Repeat

X := x+dx;

Y := x*x*x + 3;

If (x<xw2) then

Veden(x,y);

Until x>=xw2;

{ve anh}

X := xw1;

Y := x*x*x + 3;

Chuyendendx(x,y);

Repeat

X := x+dx;

Y := x*x*x + 3;

If (x<xw2) then

Vedendx(x,y);

Until x>=xw2;

Readln;

Closegraph;

End

Trang 5

Câu 3: Tính tập hợp các điểm thuộc đường cong Bezier với 4 điểm điều khiển theo thứ tự: A(1, 1), B(5, 3), C(6, 4), D(7, 2) có độ phân hoạch (bước nhảy của tham biến u, u [0, 1]) u=0.2, tọa độ của các điểm lấy chính xác 1 chữ số sau dấu phẩy.

- Đường cong Bezier luôn đi qua điểm điều khiển đầu và cuối, vì vậy điểm A và D thuộc đường cong Bezier.

- Các điểm thuộc đường cong sẽ có tọa độ thỏa mãn công thức:

.

Trong đó:

t ≡ u

L = 4-1 = 3

• u=0: Ứng với điểm A.

• u=0.2: Tọa độ của điểm này được tính như sau:

) 2 0 ( )

( )

2

0

0

3

=

=

=

=

k k k L

k

L k

k B t P B P

P

1 3 1

1 3 1 0 3 0

0 3

0 .0,2 (1 0,2) 0,2.(1 0,2) )

2

0

3 3 2 3 2

2 3

2 .0,2 (1−0,2) − + 0,2 (1−0,2) −

+P C P C

= P0.0,512+P1.0,384+P2.0,096+P3.0,008

=(1;1).0,512+(5;3).0,384+(6;4).0,096+(7;2).0,008=(3,064;2,064) Điểm có tọa độ (X, Y) là 1 điểm thuộc đường cong Bezier.

• Tương tự tính cho trường hợp u = 0.4, 0.6, 0.8

• u=1: Ứng với điểm D.

==> Tóm lại sẽ có 6 điểm thuộc đường cong bezier

Ngày đăng: 08/08/2014, 09:21

TỪ KHÓA LIÊN QUAN

w