Mitől lehet az, hogy a GetMaxX és GetMaxY függvények Pascalban mindig nullát adnak vissza?
Példa VGA grafika inicializására, 640x480 képpont felbontással, 16 színnel (a Turbo Pascal alapértelmezett grafikus módja), illetve az említett függvények használatára. Turbo Pascal 7.0 alatt lett fordítva.
program koregyenlet;
uses crt,graph;
var x,y,u,v,r,mx,my : longint;
hibakod,gdriver,gmode:integer;
procedure videoinit;
var hibakod,gdriver,gmode:integer;
begin
gdriver:=detect;
initgraph(gdriver,gmode,'bgi');
hibakod:=graphresult;
if hibakod<>0 then
begin
writeln('Grafikus hiba: ',grapherrormsg(hibakod));
halt(1);
end;
end;
begin
writeln('Add meg a k”r k”z‚ppontj nak koordin t it');
writeln('1. koord: ');
readln(u);
writeln('2. koord: ');
readln(v);
writeln('A k”r sugara: ');
readln(r);
writeln('A keresett pont x koordin t ja: ');
readln(x);
writeln('A keresett pont y koordin t ja: ');
readln(y);
if (sqrt((x-u))+sqrt((y-v))=(sqrt(r))) then
writeln('A pont a k”rvonalon van.');
if (sqrt((x-u))+sqrt((y-v))<=(sqrt(r))) then
writeln('A pont a k”rlapon van.');
if (sqrt((x-u))+sqrt((y-v))<(sqrt(r))) then
writeln('A pont a k”rvonalon bell van.');
readln;
videoinit;
setcolor(15);
circle((getmaxx div 2)+u,(getmaxy div 2)+v,r);
putpixel((getmaxx div 2)+x,(getmaxy div 2)+y,6);
readkey;
end.
Csak annyit, hogy a program a eldönti egy adott pontról, hogy ráilleszkedik-e egy adott középpontú és sugarú körre. Ezután rajzol fehér színnel egy kört, pirossal pedig egy pontot, a megadott adatok alapján. A GetmaxX és GetmaxY azért kellett, hogy mindig a képernyő közepét tekintse azon koordináta rendszer origójának, amiben dolgozunk - számítógépes grafikában a képernyő bal felső sarka az "origó", és csak egy síknegyed van (tehát bal felső sarok 0,0 jobb alsó pedig 1023,767 mivel nulla relatív számozás van, 0-val kezdődnek a koordináták. De gondolom ezt már tudod). Így a graph unitban levő GetMaxX és GetMaxY függvények lekérdezik a legnagyobb x és y tengely menti értéket amire még rajzolhatunk, aztán azokat elosztva kettővel megkaptuk a saját koordináta-rendszerünket, amibe rajzolni fog a program. Ennyi lenne, remélem érthető volt, bár már több mint egy hónapos a kérdés, azért leírtam ezt a pár dolgot, hátha valaki kíváncsi a válaszra. Jó programozást! :D
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!