Kezdőoldal » Számítástechnika » Programozás » Pascalban grafika?

Pascalban grafika?

Figyelt kérdés
Elkezdtük Az iskolában a grafikát pascalban, és van is belőle már feladat de nem tudom megcsinálni.Koncentrikus köröket kell csinálni és egymás után jelenjenek meg.És ugyanezt csak négyzetekkel.Kérlek segítsetek,FONTOS.

2012. máj. 30. 18:36
 1/9 coopper ***** válasza:
100%

Szia.


Rendben, és mi az ami nem megy ?


Vagy azt szeretnéd ha valaki megirná helyetted az egész programot ?

2012. máj. 30. 18:50
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
Nem, már valahogy nagy nehezen megírtam de a téglalapnál nem értem hogy a 4 szám mi alapján befolyásolja a téglalap helyzetét és méretét, tehát csak egy példa alapján tudtam megoldani.Ezt kéne egy kicsit jobban elmagyarázni.
2012. máj. 30. 21:45
 3/9 anonim ***** válasza:

A négy szám amiről beszéltél a window(1,2,3,4) parancs?

Ha igen, akkor az 1. szám azt jelenti, hogy a téglalap (ablak) eleje melyik képpontnál kezdődjön vízszintesen, a 2. hogy függőlegesen melyiknél kezdődjön, 3. hogy a vízszintes meddig tartson, a 4. pedig hogy függőlegesen meddig tartson.

Egyébként egy pascalos monitor 80*25, tehát ha teljes képernyőt akarsz, akkor window(1,1,80,25)

Ha azt akarod hogy egy "sornyi" kimaradjon akkor window(2,2,79,24), ha csak tíz sornyi magasat és teljes széléset akarsz akkor window(1,1,80,10), ha ezt a közepére akarod akkor window(1,5,80,15) és így tovább.

Ja és a létrehozásuk után mindig törölj képernyőt clrscr-rel.

Remélem tudtam segíteni (ha ez volt a kérdés).

2012. máj. 30. 21:59
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

A négy szám amiről beszéltél a window(1,2,3,4) parancs?

Ha igen, akkor az 1. szám azt jelenti, hogy a téglalap (ablak) eleje melyik képpontnál kezdődjön vízszintesen, a 2. hogy függőlegesen melyiknél kezdődjön, 3. hogy a vízszintes meddig tartson, a 4. pedig hogy függőlegesen meddig tartson.

Egyébként egy pascalos monitor 80*25, tehát ha teljes képernyőt akarsz, akkor window(1,1,80,25)

Ha azt akarod hogy egy "sornyi" kimaradjon akkor window(2,2,79,24), ha csak tíz sornyi magasat és teljes széléset akarsz akkor window(1,1,80,10), ha ezt a közepére akarod akkor window(1,5,80,15) és így tovább.

Ja és a létrehozásuk után mindig törölj képernyőt clrscr-rel. Az időzítésre a delay(1000) 1 másodpercnyi késleltetést okoz, tehát ezredmásodpercben kell megadnod a függvény paraméterét.

Remélem tudtam segíteni (ha ez volt a kérdés).

2012. máj. 30. 22:01
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

Igen erre gondoltam, kösz most már jobban értem, VISZONT

A pascal max képernyőfelbontása nem 640x480 pixel?Nekem aztmondták hogy annyi.

2012. máj. 30. 22:03
 6/9 anonim ***** válasza:
Ez amit a window csinál nem pixel (képpont), hanem karakterhely, tehát egy képernyőre 80*25 betű/szám/egyéb fér. Ez egyébként onnan ered, hogy a régi monitorok karaktermátrixosak voltak, és nem képpontonként rajzoltak, hanem karakterenként és mindegyiknek fix helye van. (mint mostanában a számológépek).
2012. máj. 30. 22:09
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
Ja,ok értem.Viszont ez a mai számítás szerint 640x480 pixel-nek felel meg?
2012. máj. 30. 22:19
 8/9 coopper ***** válasza:

Szia.


Keveritek a dolgokat.


Window Karakteres képernyőn dolgozik és a CRT unitban van deklarációja (oda is van irva TEXT) :


"Defines a text window on the screen.


Declaration:

procedure Window(X1, Y1, X2, Y2: Byte);"


Ami Neked kell az a rectangle és a GRAPH unitban található, deklarációja :


"Draws a rectangle, using the current line style and color.


Declaration:

procedure Rectangle(x1, y1, x2, y2: Integer);"


az X1,Y1, X2,Y2, pedig mindkét esetben a téglalap balfelső (X1,Y1) és a Jobb alsó (X2,Y2) koordinátái.


Az első esetben (windows) X: 1-80 (vagy 0-79), Y:1-25 (vagy 0-24)

A második esetben (Rectangle) : X: 1-640 (vagy 0-639) Y:1-480 (vagy 0-479)



Üdv.

2012. máj. 31. 08:42
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:

Én így csináltam meg, és működik:

uses Graph,crt;

var Gd,Gm:Integer;

Begin

Gd:=Detect;

InitGraph(Gd,Gm,' ');

SetColor(Blue);

rectangle(220,275,405,275);

delay(600);

rectangle(205,260,420,290);

delay(600);

rectangle(190,245,435,305);

delay(600);

rectangle(175,230,450,320);

delay(600);

rectangle(160,215,465,335);

delay(600);

rectangle(145,200,480,350);

delay(600);

rectangle(130,185,495,365);

delay(600);

rectangle(115,170,510,380);

delay(600);

rectangle(100,155,525,395);

delay(600);

readln;

CloseGraph;

End.


Mivel ezígy elég hosszú majd átírom valamilyen ciklussal is.

2012. máj. 31. 18:36

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!