Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
28
Добавлен:
04.03.2016
Размер:
2.42 Кб
Скачать
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;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);

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

var
Form1: TForm1;

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 2;{выбор координат центра рисунка}
mid_y := form1.height -200 ;
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]:=clGreen
end;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
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
image1.Canvas.Rectangle(0,0,ClientHeight,ClientWidth);
Button3.Enabled:=False;
Button1.Enabled:=True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Button3.Enabled:=False;
image1.Canvas.Rectangle(0,0,ClientHeight,ClientWidth);
Form1.BorderIcons := [biSystemMenu,biMinimize];//http://www.az-design.ru/index.shtml?Support&SoftWare&Delphi/D3/SB62BorderIcons
end;

end.
Соседние файлы в папке Окончательная
  • #
    04.03.2016876 б28Project1.res
  • #
    04.03.2016188 б28Project1.~dpr
  • #
    04.03.20166.09 Кб28Unit1.dcu
  • #
    04.03.201651 б28Unit1.ddp
  • #
    04.03.20162.69 Кб28Unit1.dfm
  • #
    04.03.20162.42 Кб28Unit1.pas
  • #
    04.03.201651 б28Unit1.~ddp
  • #
    04.03.20161.87 Кб28Unit1.~dfm
  • #
    04.03.20162.31 Кб28Unit1.~pas
  • #
    04.03.20164.07 Кб28Unit2.dcu
  • #
    04.03.201651 б28Unit2.ddp