Grafica in Pascal

Creați apariția mișcării pe ecran în două moduri. Primul mod este faptul că imitarea mișcării obiectului de pe ecran va construi e tsya pentru sch e m în mod repetat efectuarea de cap program de acțiune:

trage - pauză - pentru a șterge desenul (să-l atragă în t-lea loc cu culoarea de fundal) - schimba coordonatele imaginii.

Înainte de a începe programul este necesar să se ia în considerare descrierea „mutarea“ a obiectului; variația coordonatelor care definesc poziția curentă a obiectului; modificări și gama pas.

Sarcina 1. Organizarea de mișcare de simulare auto-mobil i pe ecranul computerului.

Grafica in Pascal

Utilizările CRT, grafic;
Var u, gm, gd: integer;
BEGIN
gd: = detecta;
initgraph (gd, gm, '');
dacă graphresult<>0 apoi stopare (1);
setviewport (1,1,600,450, true);
setbkcolor (lightgray);
setcolor (maro);
line (1401700401);
u: = 1;
în timp ce u<=600 do begin setcolor(darkgray);
dreptunghi (40 + u, 315,90 + u, 350);
setfillstyle (1, darkgray);
bar (5 + u, 350120 + u, 390);
setfillstyle (unul, galben); setcolor (galben);
line (121 + u, 360160 + u, 400);
line (160 + u, 400200 + u, 400);
line (200 + u, 400121 + u, 360);
floodfill (180 + u, 399, galben);
pieslice (40 + u, 385,0,360,15); <>
pieslice (90 + u, 385,0,360,15); întârziere (5000);
setfillstyle (1, lightgray);
bar (5 + u, 300210 + u, 400);
u: = u + 3 final; readln; closegraph END.

A doua metodă de simulare a modelului de circulație sau a unei părți a acesteia și include memorarea într-o zonă separată de memorie în ordine. pentru a continua pentru a restabili rapid acest râu Imagini și în fiecare dintre noastre tehnice metri pe ecran.

Pentru depozitarea Fra gmenta cel mai convenabil de a utiliza memoria dinamică. Ia dimensiunea memoriei în bytes, necesare pentru a ține evidența imaginii face posibilă pentru a funcționa ImageSize (X1, Yl, X2, Y2: număr întreg): cuvânt. În prezentul document (X1, YI) și (X2, Y2) - coordonatele din stânga sus și colțurile din dreapta jos al unui dreptunghi. Dacă dimensiunea memoriei rezultată este mai mare decât 64K, atunci valoarea ImageSize = 0, un GraphResult = -1. Pentru a evita acest lucru, ar trebui să salvați imaginea în bucăți.

Se obține prin funcția de memorie rezoluție ImageSize este utilizată ca intrare pentru procedura de GetMem (p, dimensiune), care identifică cantitatea de memorie în regiune dinamică. Aici p - un pointer la zona de memorie, Size - dimensiunea sa.

Procedura getImage (Xl, Yl, X2, Y2: integer; var bitmapului: cuvânt); fragment reține imaginea în memorie, în care XI, Y1, X2, Y2 - coordonatele fragment, bitmapului - re-dine care indică unde expresiile-imagine Imaginile stocate.

Procedura Putlmage (X, Y: integer; var bitmapului, Mo-de: cuvânt); restaurează salvate în buffer Bit Map dreptunghi colțul din stânga sus specificat tsya coordonatele e (X, Y). Parametrul Mode specifică modul de afișare.

Să demonstreze simulare mișcare folosind procedurile descrise mai sus în următoarea problemă.

Sarcina 2: construi un turn de pe ecranul computerului, simulând procesul construcției sale de jos în sus.

Grafica in Pascal