https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_96.png

Это файл Mandelbrot Set Image 95 - фрагмент множества Мандельброта, имеет три числа: Re, Im и Width. То есть участок множества: две координаты центра -1.749675773048651182 и -0.000001140170813768 и ширина изображения 0.0000000000000021. Это сделал я. Остальное - компьютер. Поиск красивых фрагментов цветных версий множества Мандельброта - вот я этим и занимаюсь. "Применение в искусстве" - так называется подраздел в русской википедии https://ru.wikipedia.org/wiki/Множество_Мандельброта#Применение_в_искусстве

https://ru.wikipedia.org/wiki/Множество_Мандельброта#Применение_в_искусстве

Некоторые другие языки тоже я сделал. Например в немецкой википедии сказано: "Галерея избранных произведений искусства" - https://de.wikipedia.org/wiki/Mandelbrot-Menge#Galerie_ausgewählter_Kunstwerke

https://de.wikipedia.org/wiki/Mandelbrot-Menge#Galerie_ausgewählter_Kunstwerke

Восемь фракталов множества Мандельброта я создал сам и загрузил на Викисклад. В итоге сообщество Википедии присвоило им статус "избранных изображений" на специальной странице: https://commons.wikimedia.org/wiki/Commons:Featured_pictures/Non-photographic_media/Computer-generated#Mathematics
Это своего рода «виртуальная выставка» лучших работ проекта. На этой странице сообщество собирает файлы, которые получили наивысшую оценку за свое техническое качество, четкость и художественную ценность. Статус избранного получают лишь около 0,015% от всех загруженных на сайт медиафайлов.

https://commons.wikimedia.org/wiki/Commons:Featured_pictures/Non-photographic_media/Computer-generated#Mathematics

А как это начиналась? Впервые я прочитал о фракталах - 40 лет назад, классе в пятом-шестом, в журнале "Техника - молодежи". Слово "Фрактал" происходит от латинского "дробный", так как у этих математических фигур дробная размерность. Они не трехмерны, и не двумерны, и не одномерны - их размерность выражается не целым числом, а дробью, например, 1 целая и четыре десятых, 2 целых и шесть десятых. Фракталами американский математик Бенуа Мандельброт предложил называть особые математические объекты, обладающие свойством дробности и до него не изучавшиеся. Бенуа Мандельброт создал неевклидову геометрию негладких, шероховатых, зазубренных, изъеденных ходами и отверстиями, шершавых. В 1977 году вышла его книга "The Fractal Geometry of Nature" - "Фрактальная геометрия природы".

Представим себе числовую последовательность, каждый следующий член который равен квадрату предыдущего члена плюс постоянное слагаемое (константа). Что ожидает нас в конце, каков предел, к чему она стремится? На числовой прямой все просто - если начинать с того, что меньше единицы, то стремится к нулю, а если с большего единицы, то к бесконечности. А если взять числовую плоскость? Комплексные то есть числа, которые суть точки на плоскости? Задачка не решается. То есть совсем не решается - аналитически никак нельзя предсказать, ни из каких законов не следует, что ждет в конце последовательности с таким-то начальным числом и с такой-то константой. Поскольку это требует чрезвычайно больших вычислительных затрат, то поставленный еще в начале XX века Гастоном Жюлиа и Пьером Фату вопрос, так и оставался без ответа. Лишь в семидесятые годы, с появлением компьютеров, возможно стало подступить к проблеме. Что и сделал Бенуа Мандельброт. Это множества Мандельброта, названная по имени Бенуа Мандельброта, первого ее исследователя, самого известного фрактала.

Посчитали и удивились - если нанести на плоскость все точки, от которых последовательность не убегает на бесконечность за какое-то приемлемое число шагов, то получается невообразимо, фантастически сложная фигура. Эту геометрическую фигуру, т. е. множество точек, назвали множеством Мандельброта. Непонятно, как такое простое уравнение может привести к такой сложной структуре, тем не менее, это так. Открытие таких геометрических объектов стало эпохальным событием в земной науке.

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

Я написал программы на ГитХабе причем README не только "Language English" но и "Язык Русский"!
Множество Мандельброта графического интерфейса
Множество Мандельброта консольную утилиту
Вы можете посмотреть про теория возмущений, про опорной траекторию, про расчет существенно быстрее, если использовать билинейную аппроксимацию и так далее. На C++.

А в 2000 год я писал:

for y:=vert downto 0 do
begin
  temp:=ordi-step*(y-vert/2);
  for x:=0 to horiz do
  begin
    m:=absc+step*(x-horiz/2);
    n:=temp;
    c:=0;
    d:=0;
    t:=0;
    repeat
      cc:=c*c;
      dd:=d*y;
      d:=(c+c)*d+n;
      c:=cc-dd+m;
      inc(t)
    until (t=1000) or (cc+dd>10);
    putpixel(x,y,t)
  end
end;

"Обыкновенный Паскаль, очень простой язык. Здесь horiz и vert - ширина и высота дисплея в пикселах, absc и ordi - координаты точки на числовой плоскости, которая будет соответствовать пикселу в центре дисплея, step - расстояние между точками числовой плоскости, положенное нами в соответствие расстоянию между пикселами дисплея (чем меньше step, тем больше увеличение картинки), t - номер члена последовательности, c и d - начальный член последовательности, m и n - константа."

Сейчас я уже в C++ пишу:

vector<uint8_t> iterMap(rawW * rawH);
long double step = size_val / rawW;
long double startX = absc - (size_val / 2.0);
long double startY = ordi - (step * rawH / 2.0);
atomic<int> linesDone{0};
#pragma omp parallel for schedule(dynamic)
for (int b = 0; b < rawH; ++b) {
for (int a = 0; a < rawW; ++a) {
long double m = startX + a * step;
long double n = startY + b * step;
long double c = m, d = n, cc, dd;
int t = 50000;
do { cc = c * c; dd = d * d;
d = (c + c) * d + n;
c = cc - dd + m;
t--; } while (t > 0 && (cc + dd <= 50000.0));

Конечно я теперь делаю настоящий SSAA 8x8 для идеально сглаженного изображения. Суперсэмплинг (Super-Sampling Anti-Aliasing) - ресурсоемкий метод сглаживания, увеличивающий число выборок на пиксель для повышения качества изображения. При значении 8x (N=8) сцена рендерится в разрешении, в 8 раз превышающем целевое, по обеим осям, создавая 64 (или 8 х 8) выборки на пиксель. Изображение просчитывается в более высоком разрешении, а затем принудительно уменьшается.

Про цветных версий - красный, зеленый и синий каналы рассчитываются с использованием синусоидальных и косинусоидальных волн:

pal[a][0] = (uint8_t)round(127.0 + 127.0 * cos(2.0 * PI * a / 255.0)); // Blue
pal[a][1] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a / 255.0)); // Green
pal[a][2] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a / 255.0)); // Red

Это поистине один из немногих объектов, который связывает нас с чем-то абсолютно объективным и бесконечным, превосходящим биологию и историю. Даже если бы вся наша Вселенная и все её атомы исчезли завтра, уравнение осталось бы верным. Оно не написано на звёздах; оно заложено в самой структуре логики. Это делает множество Мандельброта своего рода абсолютом. Множество Мандельброта существует независимо от нашего разума и технологий. Это бесконечная математическая структура, которая существовала всегда.

Собственно я хочу картины для вас, фрагменты множества Мандельброта:

https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_101.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_96.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_27.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_105.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_107.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_111.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_113.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_115.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_41.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_110.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_117.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_91.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_104.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_83.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_10.jpg
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_35.png
https://commons.wikimedia.org/wiki/File:Mandelbrot_Set_Image_73.png

Комментарии (6)


  1. vesper-bot
    13.10.2026 06:11

    чтобы рендерить с шириной e-52, нужна спец-математика (в плане что обычные double/longdouble не вмещают такую точность). что используете, какие библиотеки? и думаю, что много кто, узнав о красоте множества Мандельброта, сам писал подобное рисовалово. Я точно писал, но исходники накрылись с тех пор, и математика была “обычной”.


    1. Sau
      13.10.2026 06:11

      float (4 байта) до e-38, double (8 байт) до e-308, long double данные разнятся, от -308 до -4932. Так что спец математика не слишком нужна.


      1. vesper-bot
        13.10.2026 06:11

        Когда считаешь y=x^2-1 (вроде там такая итерация), а разные иксы отличаются на 1e-52, а сами имеют размер 1e-0, то есть условное (-0.5, -0.5) и окрестности радиусом 1е-52, в лоб не посчитать, потеряешь точность. Вот и интересует, какие трюки использовались при рендере ММБ с таким разрешением.


        1. Sau
          13.10.2026 06:11

          А, понял проблему. Автор ничего не говорит об этом, его обе программы используют простой вариант с умножением и обычными типами данных.


  1. Yukr
    13.10.2026 06:11

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

    Ну да, ни арабские и индийские математики, ни египетские астрономы, ни составитель календарей майя не изобрели микроволновок, айфонов и интернет. Ничтожества, правда?

    А те, кто приручили огонь, развели огороды и применил хинин- неразвитые существа, не тем в жизни занимались


    1. WLMike
      13.10.2026 06:11

      Кажется это про альтернативные исторические теории, где мегаразвитые цивилизации прошлого с помощью лазерных пил под руководством инопланетян создавали сооружения, которые сегодня не умеют создавать, а не про то, что раньше жили идиоты