Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ множество Мандельброта

Автор: suriv 2.11.2004 18:57

что такое множество Мандельброта?ответьте кому не сложно.

Автор: volvo 2.11.2004 19:16

Про множество Мандельброта можно почитать, например, http://eml.sakh.com/fractal/mandeljulia.html

Автор: UtaH 2.11.2004 19:20

Пусть у нас есть точка на комплексной плоскости. Если точка находится в каком-то пункте z=x+i*y, то следующий пункт будет выбираться по правилу
z'=z^2+c, где с=с1+i*с2 - некоторое фиксированное комплексное число. Значит, новые координаты точки вычисляются по формулам:

x'=x^2-y^2+c1
y'=2xy+c2

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


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Флогримм 7.11.2004 11:06

Цитата
что такое множество Мандельброта?ответьте кому не сложно

- http://www.yandex.ru/yandsearch?text=%EC%ED%EE%E6%E5%F1%F2%E2%EE+%CC%E0%ED%E4%E5%EB%FC%E1%F0%EE%F2%E0&stype=www
:yes: :D :D

Автор: Altair 7.11.2004 13:03

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

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

Автор: UtaH 9.11.2004 8: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.

Автор: Romtek 9.11.2004 15:35

http://forum.pascal.net.ru/forum/index.php?showtopic=2913

Автор: Флогримм 15.11.2004 11:00

Достаточно полная информация:
http://algolist.manual.ru/graphics/fracart.php
http://algolist.manual.ru/graphics/mandelbrot.php

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

понял, не дурак, дурак бы не понял :yes:

Автор: Гость 17.02.2006 15:59

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

А еще мне нужно множество Жулиа. (Оно обратно монжеству Мандельброта.) С этим вопросом тоже сюда?

Автор: volvo 17.02.2006 16:06

Сюда загляни:
http://forum.pascal.net.ru/index.php?s=&showtopic=9044&view=findpost&p=60271

Цитата
А еще мне нужно множество Жулиа. (Оно обратно монжеству Мандельброта.)
blink.gif
Вообще-то множество Мандельброта - это частный случай множества Жюлиа...

Автор: Гость 2.04.2006 14:07

Ладно, Спасибо! Пойду почитаю.

Автор: Гersh 14.04.2006 16:22

А вообще-то, я так понял, что разные люди (в том числе разные программисты) навывают одни и те же вещи по-разному!

Автор: Altair 15.04.2006 2:41

Может ты не так слышишь ? Что именно ты считаешь произносяться по разному ?

Автор: Гersh 28.04.2006 12:27

Например: Алгоритм Сезерленда-Коха, -Кохана, -Коэна и тд.
Я так сразу и не вспомню... Но я очень много примеров встречал разного произношения (перевода) одних и тех же названий (понятий, имен)...

Автор: volvo 28.04.2006 12:32

Это, конечно, напрямую связано с Множеством Мандельброта, правда, Гersh? Хочешь пообсуждать особенности слуха программистов - иди в "Свободное". Здесь - Тематика.

Кстати, чтобы не было разночтений, пиши фамилии так, как они были написаны в оригинале, т.е. по-английски (или по-немецки, фрунцузски, и т.д.)! Вот тогда не будет таких фокусов с транскрипцией...

Автор: Гersh 28.04.2006 13:46

А я тут при чем?
Меня спросили - я ответил. Или мне игнорировать Админа прикажите? unsure.gif
Разумеется это не связано с Мандельбротом! И потому про транскрипции я уже промолчу...

Автор: Bear 25.12.2011 14:31

Цитата(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.


Можешь коменты добавить где че делается?