Mitől lehet az, hogy a GetMaxX és GetMaxY függvények Pascalban mindig nullát adnak vissza?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
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 © 2025, 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!