D
Dimkawshm
Если кому то не в лом, посмотрите пожалуста! Задача кажется крайне интересной!
PHP:
unit Unit1;
interface
uses //После этого слова идет перечисление подключенных модулей.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
//В этих модулях находится описание разных методов и процедур,
//которые мы можем использовать
type //После этого идет объявление типов
TForm1 = class(TForm) //Начало описания нового объекта TForm1
BitBtn1: TBitBtn; //Эта наша кнопка:
PaintBox1: TPaintBox;
procedure BitBtn1Click(Sender: TObject); //Это событие от кнопки
procedure draw();
private
{ Private declarations }
public
{ Public declarations }
end;
var //Объявление глобальных переменных
Form1: TForm1; //это описана переменная Form1 типа объекта TForm1
implementation
{$R *.dfm}
{Далее идет процедура, которую создал Delphi для обработки
события OnClick, когда мы дважды щелкнули по событию в
объектном инспекторе.}
procedure TForm1.BitBtn1Click(Sender: TObject); //Имя процедуры
begin //Начало процедуры
draw();
end; //Конец процедуры
procedure Tform1.draw(); //Имя процедуры
const
iterations = 50000; //Кол-во итераций
var //Объявление глобальных переменных
t, x, y: real;
p: real;//CЛУЧАЙНАЯ ВЕЛИЧИНА
k: longint;
mid_x, mid_y, radius: integer;
begin //Начало процедуры
mid_x := paintbox1.width div 2;
mid_y := paintbox1.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;
paintbox1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]:=clGreen
end
end.//Конец модуля. После end и точки никакой код больше не воспринимается.