Relatívne grafické pero

Spomeňte si na grafické pero, ktorým sme kreslili doteraz a na jeho základné procedúry.

Okrem neho, môžeme pracovať aj s relatívnym grafickým perom -- príkazy preň si môžete pozrieť a sú pripravené aj v unite KorUnit.pas. Ak ho chceme používať, musíme tento unit pripojiť k tým, ktoré používame štandardne:
! Otvorme si Delphi a začnime s novým projektom File --> New Application.
Pozrite sa do editovacieho okna Unitu1 a do časti uses (tu sú vymenované štandardné unity, ktoré využívame), dopíšte na začiatok KorUnit, projekt si zapíšte do nového adresára  a do tohto adresára si zapíšte aj súbor KorUnit.pas.

Základné vlastnosti


Keď chceme pracovať s korytnačkou:

Kreslíme obrázky

Do formulára dajte prvok Image z palety Additional a v Objektovom inšpektore mu zmeňte položky Height na 360 a Width na 450, týmto sa Image1 zväčší. Ďalej tam dajte prvok Button z palety Standard -- pozrite sa ako

Inicializujme túto plochu tak, aby bola domovskou plochou pre korytnačku:
dvojkliknime na formulár a v editore dopíšme nasledujúci riadok:
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  inicializuj(Image1);
    // procedúra inicializuj je z KorUnit
end;

Ďalej dvojkliknite na Button vo formulári a editovacom okne Unitu dopíšte nasledujúce riadky:
 
procedure TForm1.Button1Click(Sender: TObject);
var k:Kor;
    i:integer;
begin
  k:=Kor.Create(0,0,0);
  for i:=1 to 4 do
    begin
      k.dopredu(100); k.vpravo(90);
    end;
end;

Program si zapíšte a vyskúšajte, čo kreslí..

! Do formulára umiestnite ďalšie komponenty typu Button a nakreslite nasledujúce obrázky:

! Porozmýšľajte nad tým, ako by sa obrázky kreslili s grafickým perom, ktoré sme poznali doteraz  -- museli by sme použiť zložité matematické operácie so sin, cos a tak zisťovať príslušné vzdialenosti.
 
 



! Zadeklarujte dve grafické perá na rôznych pozíciách a niektorý z obrázkov sa tak nakreslí dvakrát, napr. na stlačenie nejakého tlačidla -- Buttonu .

Čo to znamená? Musíme ten istý kód, ktorý kreslí napr. kvetinku napísať dvakrát a nahradiť premennú K1 premennou K2.
procedure TForm1.Button1Click(Sender: TObject);
var k1,k2:Kor; i,j:integer;
begin
  k1:=Kor.Create(0,0,0);
  k1.dopredu(50);
  for j:=1 to 6 do
    begin
      for i:=1 to 9 do begin k1.Dopredu(5); k1.vpravo(10); end;
      k1.vpravo(90);
      for i:=1 to 9 do begin k1.Dopredu(5); k1.vpravo(10); end;
      k1.vpravo(90+60);
    end;

  // to isté ako pre k1
  k2:=Kor.Create(-70,-70,0);
  k2.dopredu(50);
  for j:=1 to 6 do
    begin
      for i:=1 to 9 do begin k2.Dopredu(5); k2.vpravo(10); end;
      k2.vpravo(90);
      for i:=1 to 9 do begin k2.Dopredu(5); k2.vpravo(10); end;
      k2.vpravo(90+60);
    end;
end;

Toto nám vyriešia metódy objektov -- nasledujúci projekt.




Súbor vznikol na základe prednášok Andreja Blaha