clasa tcanvas
Multe obiecte au prelata de proprietate (panza, panza), care a folosit pentru a desena linii diferite: elipse, dreptunghiuri, etc. - pe suprafața obiectului care corespunde proprietăților sarcinii de fond pentru ieșire de text. proprietate Canvas aparține TCanvas de clasă, așa că trebuie să ia în considerare de ajutor pentru Delphi (pe scurt) această clasă.
Bazele clasei metodei TCanvas:
- Procedura MoveTo (X, Y: Integer); - stiloul este plasat pe punctul cu Coord. X, Y (necesar înainte de a trage unele linii, cum ar fi segmentul de linie - vezi LineTo)
- Procedura LineTo (X, Y: Integer); - a avut loc în linie dreaptă până la un punct cu Coord. X, Y (a se vedea MoveTo)
- Procedura de elipsă (X1, Y1, X2, Y2: Integer); suprasarcină; Elipsă. X1, Y1, X2, Y2 - coordonatele din stânga sus și colțuri dreapta jos ale dreptunghiului descris. sau:
Procedura de elipsă (const Rect: TRect); suprasarcină; Rect - dreptunghi (așa cum este descris). suprasarcina - suprasarcina metodei, adică, metoda poate fi utilizată cu oricare dintre aceste 2 parametri pentru aceasta. - Procedura FillRect (const Rect: TRect); - umpleri (umple în fundal) Dreptunghi dreptunghi. Proprietățile de fundal trebuie setat folosind Canvas.Brush (vezi proprietăți, perie)
- Procedura Arc (X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer); - un arc de elipsă.
- Procedura FloodFill (X, Y: Integer; Culoare: TColor; stil de completare: TFillStyle); - Umpleți un tip închis formă TFillStyle = (fsSurface, fsBorder); - în cazul în care = fsSurface stil de fișier, culoarea - culoarea de forme umplute în cazul în care = fsBorder stil de fișier, culoarea - culoarea frontierei.
- Procedura PolyBezier (const Puncte: matrice de TPoint); - trage o spline prin punctele specificate de o serie de puncte.
- Procedura de dreptunghi (X1, Y1, X2, Y2: Integer); suprasarcină; - parametrii definiți un dreptunghi (a se vedea elipsă)
Procedura dreptunghi (const Rect: TRect); suprasarcină; - Procedura RoundRect (X1, Y1, X2, Y2, X3, Y3: Integer); - un dreptunghi, colțurile sunt rotunjite.
- Procedura TextOut (X, Y: Integer; Text const: string); - afișează textul. X, Y - coord din colțul din stânga sus al dreptunghiului care închide textul.
- Proprietate Culoare: TColor;
- Stil de proprietate: TPenStyle;
tip TPenStyle = (psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear); - solide, punctată, și așa mai departe. - proprietate Lățime: Integer; - grosimea liniei.
Pe baza proprietăților clasei TCanvas:
- proprietate Perie: TBrush; - (perie). - Stabilește culoarea și tipul de umplere pentru a umple cifrele închise. Apoi - vezi proprietăți TBrush clasă.
- proprietate Font: TFont; - seteaza proprietatea fontului utilizat metoda TextOut (vezi mai sus).
- proprietate Pen: tpen; - „stilou“, care este utilizat de metodele clasei TCanvas pentru desen linii. Acesta vă permite să setați proprietățile liniilor. Clasa tpen descrisă mai sus.
- Pixelii proprietate [X, Y: Integer]: TColor; - Folosind acest St-in, puteți specifica culoarea fiecărui pixel (coordonatele pixelului sunt specificate X, Y, punctul de referință - colțul din stânga sus al proprietarului).
Algoritmul este simplu de animație
animație simplă - este doar o mișcare constantă a figurii (figura), în ceea ce privește un fundal. Cu ajutorul proprietăților și metodele de o animație simplă clasă TCanvas, puteți face acest lucru:- Desenați oriunde această cifră. Lăsați coordonatele colțul din stânga sus al acoperirii (așa cum este descris) dreptunghiului: X, Y, și această cifră - înălțimea dreptunghiului H, o lățime B. Egal poate fi atât: canvas.rectangle (X, Y, X + B, Y + H);
- Pentru a susține o perioadă de pauză pentru a percepe la forma de ochi (de exemplu, 50 msec). Este convenabil de a utiliza kompoent Timer, adică a regla Timer1.Interval = 50.
- Ștergeți cifra (puteți re-desena în aceeași locație cu culoarea de fundal sau de a folosi metoda FillRect - poate că este mai rapid)
- Schimbarea coordonatele pentru desenarea unei cantități mici (de exemplu, smoală dx = dy = 2)
- Desenați o formă într-o nouă locație. Adică pentru dreptunghi nostru:
X: = X + dx; Y: = Y + dy; canvas.rectangle (X, Y, X + B, Y + H); - Repetați pașii 1 - 5, o cifră care nu vin încă în poziția de capăt.
Puteți face animație mai ușor dacă vă mutați (schimbați poziția) Imagine obiect, care conține o imagine. În acest caz, nu trebuie să vă faceți griji cu privire la ștergerea și pictură. Trebuie doar să modificați coordonatei, pauză, etc. De exemplu, este posibil să se modifice proiectul TIR (Înlocuiți numere aleatoare asignarea drept coordonate - numerele care variază în mod continuu, care descrie traiectoria de mișcare)..