Một số thủ tục, câu lệnh được sử dụng trong đồ họa: SetColorn: Đặt màu theo chỉ số màu n.. LineTox,y: vẽ đoạn thẳng từ vị trí hiện thời của con trỏ tới điểm có tọa độ x,y.. LineReldx,d
Trang 1Bài tập và thực hành số 8
Giảng viên hướng dẫn: Thầy Trần Doãn Vinh Sinh viên thực hiện: Nguyễn Thùy Linh – K56A CNTT
Trang 2Một số thủ tục, câu lệnh được sử dụng trong đồ họa:
SetColor(n): Đặt màu theo chỉ số màu n
InitGraph(drive,mode,path): thiết lập môi trường đồ họa
SetColor(color): Đặt màu theo tên màu
Line(x1,y1,x2,y2): Vẽ đoạn thẳng nối hai điểm có tọa độ (x1,y1) và
(x2,y2)
MoveTo(x,y): định vị con trỏ tới vị trí(x,y)
LineTo(x,y): vẽ đoạn thẳng từ vị trí hiện thời của con trỏ tới điểm có
tọa độ (x,y)
LineRel(dx,dy): vẽ đoạn thẳng từ vị trí hiện thời của con trỏ đến vị trí
xác định bởi cộng thêm dx vào hoành độ,cộng thêm dy vào tung độcủa
điểm hiện thời
MoveRel(dx,dy): chuyển con trỏ tới tọa độ mới có hoành độ cộng
thêm dx,tung độ cộng thêm dy
CloseGraph: khôi phục kiểu màn hình trước khi khởi tạo đồ họa,giải
phóng vùng nhớ do đồ họa sử dụng
Trang 3Một số hàm quản lý màn hình và bàn phím:
Keypressed: cho giá trị True nếu có một phím được
gõ,hoặc False nếu chưa có phím nào được gõ
GetMaxx: cho hoành độ lớn nhất của kiểu đồ họa hiện
thời
GetMaxy: cho tung độ lớn nhất của kiểu đồ họa hiện
thời
Delay(T): tạo thời gian trễ T tính theo đơn vị mili giây,
trong đó T là một biểu thức nhận giá trị nguyên
Deplay thường được sử dụng để làm chậm chương
trình lại cho quan sát trạng thái ở thời điểm đó
Trang 4Ví dụ về chương trình ứng dụng đồ họa của Pascal
Chương trình:
Progam ThamNhieumau;
Uses Graph;
Const X=300; Y=200; N=25;
Var drive,mode,A,C,k:integer;
Procedure VeTham(a:integer);
Begin
MoveTo(X+a,Y);
LineTo(X,Y+a);LineTo(X-a,Y);
LineTo(X,Y+a);LineTo(X-a,Y);
End;
BEGIN
Drive:=0;
InitGraph(drive,mode,’c:\TP\BGI’ );
Write(‘Cho so nguyen A’);
Readln(A);C:=A div 4;
For k:=1 to N do
Begin
A:=A+C;SetColor(k);
VeTham(A);
End;
Readln;CloseGraph;
END
Chương trình “Thảm nhiều màu”:
Trang 5Vẽ đường gấp khúc ngẫu nhiên nhờ thủ tục LineTo, mỗi đoạn có một màu ngẫu nhiên Vị trí bắt đầu là tâm của màn hình, kết thúc bằng việc nhấn một phím bất kì
Chương trình:
uses crt,graph;
var stop: boolean;
function DetectInit(path:string):interger
;
var drive,mode:integer;
begin
drive:=0;
InitGraph(drive,mode,path);
DetectInit:= GraphReSult;
end;
begin
If DetectInit(‘C:\TP\BGI’)<>0 then
begin
Write(‘Loi do hoa! Nhan phim Enter de
ket thuc…’);
Readln;
end
else
begin
Randomize;
MoveTo(Getmaxx div 2,Getmaxy div 2);
stop:=false;
while not (stop) do
begin
SetColor(Random(GetMaxColor));
{Thiet lap mau mot cach ngau nhien} LineTo(Random(GetMaxx),Random(Ge tMaxy));
Delay(200);{Tam dung}
Stop:=Keypressed;
end;
end;
closeGraph
end
Trang 6Chương trình minh họa việc sử dụng các thủ tục
vẽ hình đơn giản:
Progam GraphDemo;
uses Graph;
Var
gd,gm: integer;
xm,ym,xmaxD4,ymaxD4: word;
begin
gd:=detect;
Initgraph(gd,gm,’C:\TP\BGI’ );
Xm:=GetmaxX div 2 ;
ym:=GetmaxY div 2;
{Ve hinh chu nhat voi net ve mau
vang}
SetColor(Yellow);
Rectangle(10,10,xm,ym);
Readln;
{Ve duong tronmau xanh la cay, tam(450;100) ban kinh 50} Setcolor(LightGreen);
Circle(450,100,50);
Readln;
{Ve ellip mau do}
SetColor(Red);
Ellipse(100,200,0,360,50,120); Readln;
CloseGraph
end
Trang 7Bài tập về nhà:
Ôn lại những thủ tục,câu lệnh trong đồ họa của Pascal
Ôn lại kiến thức về viết chương trình con Viết một số chương trình về đồ họa của
Pascal
Làm bài tập trong sách bài tập Tin học 11
Ôn lại tất cả các kiến thức đã học để chuẩn
bị cho tiết sau ôn tập