Kezdőoldal » Számítástechnika » Programozás » Mitől lehet az, hogy a GetMaxX...

Mitől lehet az, hogy a GetMaxX és GetMaxY függvények Pascalban mindig nullát adnak vissza?

Figyelt kérdés
2011. dec. 9. 15:21
 1/3 coopper ***** válasza:
Talán mert még nem inicializáltad a Grafikus drivert és nem kapcsoltad be (szöveges képernyőmódban 0-t kell nekik visszaadniuk) (Ha jól rémlik akkor detectgraph és initgraph)
2011. dec. 9. 15:25
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

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 bell 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

2012. jan. 14. 13:24
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Köszi a cizellált választ, kedves második. :)
2012. jan. 14. 16:28

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!