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

Некоторые другие языки тоже я сделал. Например в немецкой википедии сказано: "Галерея избранных произведений искусства" - 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% от всех загруженных на сайт медиафайлов.

А как это начиналась? Впервые я прочитал о фракталах - 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
Это поистине один из немногих объектов, который связывает нас с чем-то абсолютно объективным и бесконечным, превосходящим биологию и историю. Даже если бы вся наша Вселенная и все её атомы исчезли завтра, уравнение осталось бы верным. Оно не написано на звёздах; оно заложено в самой структуре логики. Это делает множество Мандельброта своего рода абсолютом. Множество Мандельброта существует независимо от нашего разума и технологий. Это бесконечная математическая структура, которая существовала всегда.
Собственно я хочу картины для вас, фрагменты множества Мандельброта:


















