Pattogó labda
Egy egyszerű szimulációt készítünk el. Több kisebb lépésben haladunk a cél felé.
1. változat: Körök kirajzolása
program grafika01;
uses graph,crt;
var gd,gm: integer;
BEGIN
detectgraph(gd,gm);
initgraph(gd,gm,'');
circle(50,50,10);
circle(100,100,80);
circle(200,300,150);
circle(400,500,250);
readln;
closegraph;
END.
2. változat: Egy kör végigfut a képernyőn
program grafika02;
uses graph,crt;
var
gd,gm : integer;
cx,cy : integer;
i : integer;
vx,vy : integer;
BEGIN
detectgraph(gd,gm);
initgraph(gd,gm,'');
cx := 20; cy := 20; vx := 2; vy := 3;
circle(cx,cy,10);
for i := 1 to 1000 do
begin
cx := cx + vx; cy := cy + vy;
circle(cx,cy,10);
delay(10);
end;
readln;
closegraph;
END.
3. változat: Egy kör végigfut a képernyőn animálva
program grafika03;
uses graph,crt;
var
gd,gm : integer;
cx,cy : integer;
i : integer;
vx,vy : integer;
BEGIN
detectgraph(gd,gm);
initgraph(gd,gm,'');
cx := 20; cy := 20; vx := 2; vy := 3;
circle(cx,cy,10);
for i := 1 to 1000 do
begin
setcolor(black);circle(cx,cy,10);
cx := cx + vx; cy := cy + vy;
setcolor(white);circle(cx,cy,10);
delay(10);
end;
readln;
closegraph;
END.
4. változat: Egy kör pattog egy téglalapban
program grafika04;
uses graph,crt;
var gd,gm : integer;
cx,cy : integer;
i : integer;
vx,vy : integer;
BEGIN
detectgraph(gd,gm);
initgraph(gd,gm,'');
rectangle(9,9,401,301);
cx := 20; cy := 20;
vx := 2; vy := 3;
circle(cx,cy,10);
for i := 1 to 1000 do
begin
setcolor(black);circle(cx,cy,10);
cx := cx + vx;
cy := cy + vy;
if cx >= 390 then
begin
cx := cx - vx;
vx := -vx;
end;
if cx <= 20 then
begin
cx := cx - vx;
vx := -vx;
end;
if cy >= 290 then
begin
cy := cy - vy;
vy := -vy;
end;
if cy <= 20 then
begin
cy := cy - vy;
vy := -vy;
end;
setcolor(white);circle(cx,cy,10);
delay(10);
end;
readln; closegraph;
END.
5. változat: Egy kör pattog egy téglalapban, van kijárat
6. változat: Egy kör pattog egy téglalapban, van gravitáció