Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
04.03.2016
Размер:
2.78 Кб
Скачать
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, XPMan;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
image1: TImage;
xpmanifest1: TXPManifest;
Button3: TButton;
rg1: TRadioGroup;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
flag:Boolean;
col:TColor;

implementation

{$R *.dfm}
uses unit2;

procedure gf;

const
iterations = 500000; //Кол-во итераций

var
t, x, y: real;
p: real;//CЛУЧАЙНАЯ ВЕЛИЧИНА
k: longint;
mid_x, mid_y, radius: integer;

begin
mid_x := form1.width div 3;
mid_y := form1.height -100 ;
radius := trunc(0.1 * mid_y);
randomize;
x := 1.0;
y := 0.0;
for k := 1 to iterations do
begin
p := random;
t := x;
if p <= 0.85 then //Построение верхней части листа
begin
x := 0.84 * x -0.045 * y;
y := 0.045 * t + 0.86 * y + 1.6;
end
else
if p <= 0.92 then //Построение левого листа
begin
x := 0.25 * x - 0.26 * y;
y := 0.23 * t + 0.25 * y + 1.6;

end //Построение правого листа
else if p <= 0.99 then
begin
x := -0.135 * x + 0.28 * y;
y := 0.26 * t + 0.245 * y + 0.44;
end
else
begin //Построение стебля
x := 0.0;
y := 0.16 * y ;
end;

Form1.image1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]:=col;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);

begin
case rg1.ItemIndex of
0: col:=clGreen;
1: col:=clRed;
2: col:=clBlue;
3: col:=clOlive;
4: col:=clMaroon;
5: col:=clPurple;
6: col:=clLime;
7: col:=clYellow;
end;
gf;
button1.enabled:=false;
Button3.Enabled:=True;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Visible:=false;
form2.show;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
{if checkbox1.Checked then begin
image1.picture:=nil;
Button3.Visible:=False;
end else begin
Button3.Visible:=False;
end; }
image1.Canvas.Rectangle(0,0,ClientWidth,ClientHeight);
Button3.Enabled:=False;
Button1.Enabled:=True;
end;






procedure TForm1.FormCreate(Sender: TObject);
begin
image1.Canvas.Rectangle(0,0,ClientHeight,ClientWidth);
Form1.BorderIcons := [biSystemMenu,biMinimize];
end;


procedure TForm1.FormActivate(Sender: TObject);
begin
rg1.ItemIndex:=0;
end;

end.
Соседние файлы в папке Новая папка (2) - копия
  • #
    04.03.2016876 б21Project1.res
  • #
    04.03.2016188 б21Project1.~dpr
  • #
    04.03.20166.75 Кб21Unit1.dcu
  • #
    04.03.201651 б22Unit1.ddp
  • #
    04.03.20162.66 Кб21Unit1.dfm
  • #
    04.03.20162.78 Кб21Unit1.pas
  • #
    04.03.201651 б21Unit1.~ddp
  • #
    04.03.2016747 б21Unit1.~dfm
  • #
    04.03.20161.49 Кб22Unit1.~pas
  • #
    04.03.20163.9 Кб21Unit2.dcu
  • #
    04.03.201651 б21Unit2.ddp