Form obsahuje Image1 (velkost[200,200]), Edit1 a Button1. Maximalna velkost pyramidy je 4 (vysvetlene v kode).
Polygon je n-uholnik. Takze napiseme vrchlovy a on ich pospaja (v nasom pripade A,B,C kde C je vrchol).
Kód:
const
velkost = 20;
var
Form1: TForm1;
farba: TColor;
sirka,vyska,stupne: Byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
// prekreslime kresliacu plochu
Image1.Picture := nil;
// vygenerujeme farbu pre pyramidu
farba := RGB(Random(255),Random(255),Random(255));
sirka := Image1.Width;
vyska := Image1.Height;
stupne := StrToInt(Edit1.Text);
// nastavime farbu stetca
Image1.Canvas.Brush.Color := farba;
// velkost pyramidy bude o 1 do max. 4 (velkost image1 = 200) -> 20 + "4"*40 = 180; 5 uz je vela!
if ((stupne >= 1) and (stupne < Trunc((Image1.Height)/40))) then
Image1.Canvas.Polygon([ Point(Trunc(sirka/2) - Trunc(velkost/2) - (stupne-1)*velkost,sirka),
Point(Trunc(sirka/2) + Trunc(velkost/2) + (stupne-1)*velkost,sirka),
Point(Trunc(sirka/2),vyska - velkost-(stupne-1)*40)])
else begin
ShowMessage('zle parametre');
Image1.Picture := nil;
end;
end;