Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 10:11   #1
bloker
 
Регистрация: 26.04.2010
Сообщений: 3
По умолчанию Фрактал Ньютона

Задача.
Реализовать программу, строящую фрактал с заданными границами расчета x0<=x<=xn, y0<=y<=yn.
Где x0=-1.0, xn=0.7, y0=-0.7, yn=1.0.

В инете нашел алгоритм программы строящий фрактал, но вот куда здесь вставлять мои данные не понял, подскажите куда правильно тут подставить?

Код:
program N3;
uses Graph, Crt;
type
        Complex = Record
                x : Real;
                y : Real;
        end;
const
        iter = 50;
        max  = 1e+6;
        min  = 1e-6;
        
var
        z, t, d : Complex;
        p       :  Real;
        x, y, n : Integer;
        Cancel  : Boolean;
        gd, gm  : Integer;
        mx, my  : Integer;
        
begin
        Cancel := False;
        Randomize;
        gd := Detect;
        InitGraph(gd,gm,'c:\bp\bgi');
        Mx := GetMaxX div 2;
        My := GetMaxY div 2;
        for y := -my to my do
                for x := -mx to mx do 
                begin
                        n := 0;
                        z.x := X * 0.005;
                        z.y := Y * 0.005;
                        d := z;
                        while (sqr(z.x)+sqr(z.y) < max) and (sqr(d.x)+sqr(d.y) > min)
                                and (n < iter) do 
                        begin
                                t := z;
                                {z^3 - 1}
                                p := sqr(sqr(t.x)+sqr(t.y));
                                z.x := 2/3*t.x + (sqr(t.x)-sqr(t.y))/(3*p);
                                z.y := 2/3*t.y*(1-t.x/p);{}
                                d.x := abs(t.x - z.x);
                                d.y := abs(t.y - z.y);
                                Inc(n);
                                if keypressed then 
                                        Cancel := true;
                        end;
                        PutPixel(mx + x,my + y,16 - (n mod 16));
                        if cancel then exit;
                end;
        Readkey;
        CloseGraph;
end.
bloker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фрактал в виде папоротника Arigato Мультимедиа в Delphi 5 29.03.2011 06:33
фрактал по центру image Сергей089 Помощь студентам 0 04.05.2009 21:59
Фрактал на PHP Alter PHP 5 29.10.2008 15:24