Grafică capabilități delphi animație, utilizarea de imagini, Delphi, componente

Animația este de obicei înțeleasă ca o imagine mișcătoare și în schimbare. În cel mai simplu caz, imaginea se poate mișca sau se poate schimba.

După cum sa arătat mai sus, desenul poate fi format din primitive grafice (linii, cercuri, pajiști, poligoane etc.). Pentru a asigura că mișcarea imaginii este simplă: trebuie să afișați mai întâi imaginea pe ecran, după care ștergeți-o și afișând din nou același model, dar la o anumită distanță de poziția inițială. Alegerea timpului dintre desenarea și ștergerea desenului, precum și distanța dintre poziția veche și noua a desenului (pasul de mișcare), se poate realiza astfel încât observatorul să obțină impresia că desenul se mișcă uniform pe ecran.







Următorul este un program simplu, al cărui text este prezentat în Lista 10.8, iar formularul este prezentat în Fig. 10.15, demonstrează mișcarea cercului de la stânga la marginea dreaptă a ferestrei programului.

Fig. 10.15. Formular de program Cerc în mișcare

Listing 10.8. Cerc în mișcare

01. unitate mcircle;

04. Windows, Mesaje, SysUtils, Clase, Grafică, Controale, Formulare, Dialoguri, ExtCtrls, StdCtrls;

06. TForml = clasă (TForra)

07. Timer1: TTimer;

08. procedura TimerlTimer (Expeditor: TObject);

Lucrarea principală se realizează prin procedura RIS, care șterge cercul și îl afișează într-un loc nou. Ștergerea unui cerc se face prin revopsirea cercului peste culoarea desenată, dar pe fundal.

Pentru a asigura apelul periodic al procedurii Ris, în formularul de program (figura 10.16) se adaugă o componentă de timer non-vizual (timer) a cărei pictogramă se află în fila System (Sistem) a paletei Component. Proprietățile componentei Timer sunt listate în Tabelul. 10.9.


Componenta Timer este adăugată la formular în mod obișnuit, cu toate acestea, deoarece componenta Timer nu este vizuală, adică atunci când programul nu este afișat pe formular, pictograma sa poate fi plasată oriunde în formă.

Componenta Timer generează un eveniment OnTimer. Perioada evenimentului OnTimer este măsurată în milisecunde și este determinată de valoarea proprietății intervalului. Ar trebui să acordați atenție proprietății Enabled. Permite programului să "înceapă" sau să "oprească" cronometrul. Dacă valoarea proprietății Enabled este False, evenimentul OnTimer nu apare.

Evenimentul OnTimer din programul în cauză este tratat de rutina TimeriTimer, care la rândul său numește procedura Ris. Astfel, programul implementează mecanismul invocării periodice a procedurii Ris.







Notă: Variabilele x, y (coordonatele centrului cercului) și dx (incrementarea coordonatelor x atunci când cercul se mișcă) sunt declarate în afara procedurii Ris, adică sunt globale. Prin urmare, nu uitați să le inițializați (programul inițializează variabilele globale cu procedura FormActivate).

Metoda Punctului de Bază

Atunci când programați imagini complexe constând dintr - un set de

elemente, se folosește o metodă numită metoda punctului de bază.

Esența acestei metode este după cum urmează:

Când se programează imagini complexe constând din mai multe elemente, se folosește o metodă numită metoda punctului de bază.

Esența acestei metode este după cum urmează:

  1. Se selectează un anumit punct al imaginii, care este considerat ca punct de bază.
  2. Coordonatele punctelor rămase sunt numărate din punctul de bază.
  3. Dacă coordonatele punctelor de imagine sunt măsurate de la bază în unități relative, nu în pixeli, atunci imaginea poate fi redusă.

În Fig. Figura 10.17 prezintă imaginea navei. Punctul de bază este punctul cu coordonatele (x0, y0). Coordonatele punctelor rămase sunt contorizate din acest punct.

Fig. 10.17. Determinarea coordonatelor imaginii în raport cu punctul de bază

Listei 10.9 este afișat textul programului care afișează imaginea navei intercalate.

Listing 10.9. nautilus

Desenarea și ștergerea imaginii navei efectuează procedura Titanik, care primește ca parametri coordonatele punctului de bază și culoarea care urmează a fi trasată de imaginea navei. Dacă culoarea este diferită de culoarea de fundal a formularului atunci când apelați procedura, procedura atrage barca și, dacă se potrivește, "șterge". În procedura Titanik, constantele dx și dy sunt definite, definind pasul (în pixeli) utilizat la calcularea coordonatelor punctelor de imagine. Prin schimbarea valorilor acestor constante, puteți scala imaginea.

Utilizând Bitmap-uri

În exemplul anterior, imaginea a fost formată din grafic

mitivov. Acum, ia în considerare modul în care puteți implementa mișcarea unuia

imagine complexă pe fundalul altei, de exemplu,

pe fundalul peisajului orașului.

Efectul imaginilor în mișcare poate fi creat periodic

reproiectând o imagine cu unele prejudecăți față de fostul său

poziție. Se presupune că înainte ca imaginea să fie scoasă din nou

În exemplul anterior, imaginea a fost formată din primitive grafice. Acum, luați în considerare modul în care puteți implementa mișcarea unei imagini monosilice pe fundalul altei, de exemplu, deplasând un avion pe fundalul unui peisaj urban.

Efectul deplasării unei imagini poate fi creat prin repetarea periodică a unei imagini cu o anumită deplasare față de poziția sa anterioară. Se presupune că înainte de a șterge o imagine într-un punct nou, imaginea anterioară este mai întâi ștearsă. Ștergerea unei imagini poate fi realizată prin redarea întregii imagini de fundal sau a acelei părți care este blocată de imaginea bit a obiectului în mișcare.

Forma programului este prezentată în Fig. 10.18, iar textul este în lista SHL.

Componenta imaginii este utilizată pentru a scoate fundalul, iar componenta Timer este utilizată pentru a organiza întârzierea dintre ciclurile de ștergere și ieșire în noua locație a imaginii avionului.

Listing 10.10. Avioane care zboară







Trimiteți-le prietenilor: