Помощь - Поиск - Пользователи - Календарь
Полная версия: множество Мандельброта
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
suriv
что такое множество Мандельброта?ответьте кому не сложно.
volvo
Про множество Мандельброта можно почитать, например, здесь...
UtaH
Пусть у нас есть точка на комплексной плоскости. Если точка находится в каком-то пункте z=x+i*y, то следующий пункт будет выбираться по правилу
z'=z^2+c, где с=с1+i*с2 - некоторое фиксированное комплексное число. Значит, новые координаты точки вычисляются по формулам:
x'=x^2-y^2+c1
y'=2xy+c2

Существует область значений параметра с, при которых точки, выходящие из начала координат, будут постоянно вертеться около места "старта". Граница этой области и получила название множества Мандельброта.
Флогримм
Цитата
что такое множество Мандельброта?ответьте кому не сложно

- http://www.yandex.ru/yandsearch?text=%EC%E...F2%E0&stype=www
:yes: :D :D
Altair
Флогримм, пожалуйста никогда больше не предлагай в качестве ответа поисковик.... он в 5% случаев только дает нужный ответ...

ЗЫ: у меня где-то есть исходник программы рисующий сие прекрасное меножество smile.gif
Если надо, поищу...
UtaH
Код
program mandel;

uses CRT, Graph;

const
    maxcol = 640;
    maxrow = 200;
    max_colors = 16;
    max_iterations = 512;
    max_size = 4;

var
  Q    :   array[0..349] of real;
  XMax,YMax,XMin,YMin : real;
  P,deltaP,deltaQ,X,Y,Xsquare,Ysquare : real;
  i,color,row,col,GraphDriver,GraphMode : integer;
  ch : char;

begin
    XMax := 1.2;
    XMin := -2.0;
    YMax := 1.2;
    YMin :=-1.2;
    GraphDriver := EGA;
    GraphMode := EGALo;
    InitGraph(GraphDriver,GraphMode,'');
    deltaP := (XMax - XMin)/(maxcol);
    deltaQ := (YMax - Ymin)/(maxrow);
    Q[0] := YMax;
    for row := 1 to maxrow do
        Q[row] := Q[row-1] - deltaQ;
    P := XMin;
    for col := 0 to maxcol do
    begin
         if Keypressed then
            exit;
         for row := 0 to maxrow do
         begin
              X := 0.0;
              Y := 0.0;
              Xsquare := 0.0;
              Ysquare := 0.0;
              color := 1;
              repeat            
                    Xsquare := X*X;
                    Ysquare := Y*Y;
                    Y := 2*X*Y + Q[row];
                    X := Xsquare - Ysquare + P;
                    inc(color);
              until (color>=max_iterations) OR (Xsquare + Ysquare >= max_size);
              PutPixel(col,row,(color MOD max_colors));
         end;
         P := P + deltaP;
    end;
    ch := ReadKey;
end.
Флогримм
Достаточно полная информация:
http://algolist.manual.ru/graphics/fracart.php
http://algolist.manual.ru/graphics/mandelbrot.php

Цитата
Флогримм, пожалуйста никогда больше не предлагай в качестве ответа поисковик.... он в 5% случаев только дает нужный ответ...

понял, не дурак, дурак бы не понял :yes:
Гость
Здрасти! Скачал программу рисовнания множества - работет прикрасно! Спасибо!!
Но может кто-нибудь разжует каждую строчку, как эта программа работет??

А еще мне нужно множество Жулиа. (Оно обратно монжеству Мандельброта.) С этим вопросом тоже сюда?
volvo
Сюда загляни:
Фракталы. Теория

Цитата
А еще мне нужно множество Жулиа. (Оно обратно монжеству Мандельброта.)
blink.gif
Вообще-то множество Мандельброта - это частный случай множества Жюлиа...
Гость
Ладно, Спасибо! Пойду почитаю.
Гersh
А вообще-то, я так понял, что разные люди (в том числе разные программисты) навывают одни и те же вещи по-разному!
Altair
Может ты не так слышишь ? Что именно ты считаешь произносяться по разному ?
Гersh
Например: Алгоритм Сезерленда-Коха, -Кохана, -Коэна и тд.
Я так сразу и не вспомню... Но я очень много примеров встречал разного произношения (перевода) одних и тех же названий (понятий, имен)...
volvo
Это, конечно, напрямую связано с Множеством Мандельброта, правда, Гersh? Хочешь пообсуждать особенности слуха программистов - иди в "Свободное". Здесь - Тематика.

Кстати, чтобы не было разночтений, пиши фамилии так, как они были написаны в оригинале, т.е. по-английски (или по-немецки, фрунцузски, и т.д.)! Вот тогда не будет таких фокусов с транскрипцией...
Гersh
А я тут при чем?
Меня спросили - я ответил. Или мне игнорировать Админа прикажите? unsure.gif
Разумеется это не связано с Мандельбротом! И потому про транскрипции я уже промолчу...
Bear
Цитата(UtaH @ 9.11.2004 4:02) *

Код
program mandel;

uses CRT, Graph;

const
    maxcol = 640;
    maxrow = 200;
    max_colors = 16;
    max_iterations = 512;
    max_size = 4;

var
  Q    :   array[0..349] of real;
  XMax,YMax,XMin,YMin : real;
  P,deltaP,deltaQ,X,Y,Xsquare,Ysquare : real;
  i,color,row,col,GraphDriver,GraphMode : integer;
  ch : char;

begin
    XMax := 1.2;
    XMin := -2.0;
    YMax := 1.2;
    YMin :=-1.2;
    GraphDriver := EGA;
    GraphMode := EGALo;
    InitGraph(GraphDriver,GraphMode,'');
    deltaP := (XMax - XMin)/(maxcol);
    deltaQ := (YMax - Ymin)/(maxrow);
    Q[0] := YMax;
    for row := 1 to maxrow do
        Q[row] := Q[row-1] - deltaQ;
    P := XMin;
    for col := 0 to maxcol do
    begin
         if Keypressed then
            exit;
         for row := 0 to maxrow do
         begin
              X := 0.0;
              Y := 0.0;
              Xsquare := 0.0;
              Ysquare := 0.0;
              color := 1;
              repeat            
                    Xsquare := X*X;
                    Ysquare := Y*Y;
                    Y := 2*X*Y + Q[row];
                    X := Xsquare - Ysquare + P;
                    inc(color);
              until (color>=max_iterations) OR (Xsquare + Ysquare >= max_size);
              PutPixel(col,row,(color MOD max_colors));
         end;
         P := P + deltaP;
    end;
    ch := ReadKey;
end.


Можешь коменты добавить где че делается?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.