2. príklady


Posledná zmena: 13.10.2002

Banner Text korytnačka

Korytnačia grafika

veľké bodky

po zatlačení tlačidla sa na náhodnej pozícii vytvorí korytnačka a tá nakreslí náhodne veľkú farebnú bodku

  • využite, že Dopredu(0) nakreslí bod - bodku
var
  k:TKor;
begin
  k:=TKor.Create(random(Image1.Width),
                 random(Image1.Height));
  k.FP:=RGB(random(256),random(256),random(256));
  k.HP:=random(100)+1;
  k.Dopredu(0);
end;

terč

pomocu veľkých farebných bodiek nakresliť 10 sústredných kruhov

var
  k:TKor;
  i:integer;
begin
  k:=TKor.Create; randomize;
  for i:=10 downto 1 do begin
    k.FP:=RGB(random(256),random(256),random(256));
    k.HP:=i*20;
    k.Dopredu(0);
  end;
end;

dvojfarebný terč

terč zo sústredných kruhov, v ktorom sa striedajú len 2 farby

  • nepoužívajte if

var
  k:TKor;
  i:integer;
begin
  k:=TKor.Create; randomize;
  for i:=5 downto 1 do begin
    k.FP:=clRed;
    k.HP:=i*40;
    k.Dopredu(0);
    k.FP:=clYellow;
    k.HP:=i*40-20;
    k.Dopredu(0);
  end;
end;

dvojfarebný terč

to isté iným spôsobom

všimnite si konštanty f1 a f2, ktoré sú celočíselné a vznikli z kódov dvoch farieb, tiež si všimnite riadok, v ktorom sa priraďuje farba:=TColor(f1) ... tu sme celé číslo pretypovali na TColor

tieto pretypovávania sa robia len z programátroskej slušnosti - v skutočnosti je TColor celočíselný typ, takže pretypovávačky môžete vynechať

const
  f1=integer(clRed); f2=integer(clYellow);
var
  k:TKor;
  i,farba:integer;
begin
  k:=TKor.Create;
  farba:=TColor(f1);
  for i:=10 downto 1 do begin
    k.FP:=TColor(farba);
    k.HP:=i*30;
    k.Dopredu(0);
    farba:=f1+f2-farba;
  end;
end;

kríž

pomocou hrubých rôzne zafarbených čiar nakresliť kríž

var
  k:TKor;
  i:integer;
begin
  k:=TKor.Create;
  k.HP:=50;
  for i:=1 to 4 do begin
    k.Dopredu(50); k.Dopredu(-50); k.Vpravo(90);
  end;
  k.HP:=30; k.FP:=clWhite;
  for i:=1 to 4 do begin
    k.Dopredu(50); k.Dopredu(-50); k.Vpravo(90);
  end;
end;

slnko

nakresliť žlté slnko na modrom podklade

var
  k:TKor;
  i:integer;
begin
  k:=TKor.Create; zmaz(clBlue);
  k.FP:=clYellow; k.HP:=3;
  for i:=1 to 30 do begin
    k.Dopredu(150);
    k.Dopredu(-150);
    k.Vpravo(12);
  end;
  k.HP:=200;
  k.Dopredu(0);
end;

dve špirály

pomocou 2 korytnačiek nakreslite trojuholníkovú a päťuholníkovú špirálu s 50 stranami tak, aby sa kreslili naraz

var
  k1,k2:TKor;
  i:integer;
begin
  k1:=TKor.Create(200,200);
  k2:=TKor.Create(400,200);
  for i:=1 to 50 do begin
    k1.Dopredu(i*4); k1.Vlavo(120);
    k2.Dopredu(i*2); k2.Vpravo(72);
    cakaj(1);
  end;
end;


© 2002 AB, KVI
blaho@fmph.uniba.sk