1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Помощь в Mathcad. Фреймы.

Тема в разделе "Программирование", создана пользователем volk, 03.06.09.

  1. volk

    volk Активный участник

    912
    0
    Фреймы, кто сталкивался?
    Есть алгоритм построения листа папоротника написанный на паскале,
    требуется реализация в маткаде, вроде бы алгоритм не сложный, только вот с синтаксисом маткада я не знаком. Кто в курсе? Ниже собственно алгоритм на паскале.

    program farn;
    uses crt,graph;
    const
    a:array[1..4] of real = (0, 0.167, -0.155, 0.849);
    b:array[1..4] of real = (0, -0.226, 0.283, 0.037);
    c:array[1..4] of real = (0, 0.226, 0.26, -0.037);
    d:array[1..4] of real = (0.16, 0.157, 0.237, 0.849);
    e:array[1..4] of real = (0, 0, 0, 0);
    f:array[1..4] of real = (0, 1.6, 0.44, 1.6);
    p:array[1..4] of real = (0.03, 0.14, 0.27, 1.0);

    var k: integer;
    i: longint;
    x, x1, y, pk : real;
    procedure GraphInit;
    var Graphdriver, Graphmode: integer;
    begin
    Graphdriver:= Detect;
    Initgraph(Graphdriver, Graphmode, '\BP\bgi');
    SetgraphMode (GraphMode);
    cleardevice;
    end;
    begin
    GraphInit;
    randomize;
    x:= 0; y:= 0;
    for i:= 1 to 75000 do
    begin
    pk:= random;
    if pk <= p[1] then k:= 1
    else if pk <=p[2] then k:= 2
    else if pk <=p[3] then k:= 3
    else if pk <=p[3] then k:= 3
    else k:= 4;
    x1:= a[k] * x + b[k] * y + e[k];
    y:= c[k] * x +d[k] * y + f[k];
    x:= x1;
    putpixel(round(x*50)+320, 430-round(y*40),10);
    end;
    repeat until keypressed;
    closegraph;
    textmode(lastmode)
    end.

    добавлено через 22 минуты
    Прошу прощения фракталы, конечно!!!