Комментарии 19
Ну как? Множества Мандельброта нравится?
нет, не нравится, потому что это не оно. Множество Мандельброта симметрично относительно вещественной оси, а на картинках автора явно наблюдается какая-то закрученность. Вероятно, это накопление ошибки округления в итерационном расчете, при которой отрицательные числа обрабатываются чуть-чуть иначе, чем положительные, хотя все равно странно, при правильной организации расчетов знак должен полностью симметрично учитываться и никакой крутилки быть не должно.
Множество Мандельброта не оно???? Вы что там, вещества что ли употребили???
Оно. Просто это не центр:
Множество Мандельброта содержит почти полные копии исходного центрального отпечатка на радиальных осях, под другими углами и уже не полностью симметричные. На видео просто не центральная точка (0;0) рендерится, а более красивые лепестки в глубинах фрактала
собственно как понимаю PRESETS в исходниках это как раз координаты и зум для каждой точки отсчёта, можете перепроверить корректность в том же XAOS для этих окрестностей:
Вот что на экране видео точно также и на программе! И есть восемь предустановленных мест Множества Мандельброта. Это C++:
const long double PRESETS[8][3] = { {-0.7849975438787509L, 0.1465897423090329L, 0.00000000000015L}, {-1.39968383250956L, -0.0005525550160L, 0.0000000000146L}, {-0.8069595889803L, -0.1593850218137L, 0.00000000006L}, {-0.618733273138252L, -0.456605361076005L, 0.0000000000046L}, {-0.550327628L, -0.625931405602L, 0.00000000781L}, {-0.55033233469975L, 0.62593882612931L, 0.0000000000023L}, {-1.3996669964593604L, 0.0005429083913L, 0.000000000000026L}, {-0.5503493176297569L, 0.6259309572825709L, 0.00000000000031L}};"более красивые лепестки в глубинах фрактала" - ну да. Красивые.
Я не про видео, я про картинки в статье. На них кружочки и завиточки образуют четко выраженные водоворотики относительно белой центральной ляпки, которая должна быть центральной частью множества Мандельброта. Если бы эти водоворотики были зеркальным отражением друг друга относительно вещественной оси- не вопрос, но они не являются отражениями, картинка в целом не имеет зеркальной симметрии. А потому- не оно.
это, кстати, самый такой базовый тест для всякой математики вычислительной- загоняешь задачу, которая однозначно должна быть симметричной, и проверяешь, чтоб эта симметрия была с точностью до бита. Если нету- то поздравляю, ты че-то где-то накосячил, может и не сильно, но накосячил, и это скорее всего вылезет тебе когда-нибудь знатными вилами.
ОНО.
картинки - это тоже множество Мандельброта НЕ в центральной точке.
"белая центральная ляпка" во множестве Мандельброта встречается больше одного раза (нужно поскролить и позумить куда-то в сторону), и только одна центральная копия полностью симметрична относительно вещественной оси
ваша логика понятна, но ошибочна. вы видите корректное изображение участка множества Мандельброта, но не понимаете этого (думаете что вам показывают центр, а это НЕ центр) и думаете что это ошибка.
обратите внимание, на картинках "белая центральная ляпка" изобрежна под разными углами. это НЕ ошибка, это реальная ориентация в других участках фрактала той же фигуры, что в центре, да не совсем той же

тогда вопрос- на этой картинке красный крестик какую координату имеет?
автор к сожалению не подписал под каждой картинкой координату, предположу исходя из вертикальной ориентации что это хорошо отзумленный радиальный луч с 0 по вещественной оси и каким то дробным положительным или отрицательным значением комплексной составляющей
если вам хочется истины скачайте XAOS вбейте каждую координату из presets в каноничный браузер Мандельброта и Жулиа и убедитесь что там есть такие несимметричные копии
там даже пресеты координат в дистрибутив вроде входят для ленивых
long double step = size_val / rawW;
long double startY = ordi - (step* rawH / 2.0);
long double n = startY + a * step;
как я понимаю, ошибка вот в этих строках.
StartY+b*step с учетом ошибки округления при расчете этого самого степа не совсем точно попадает в ноль, поэтому расходимость последовательности Вы определяете в несколько несимметричных точках x+ c*i / x - (c+eps)-i
а так как молотите 15 тысяч точек, то исходная погрешность в районе ULP умножается примерно на 7500 уже к середине и дает в сумме существенное отклонение в расчетах, которое заметно на изображениях.
поточнее было бы, если бы Вы циклы гоняли
for (int a = -rawW % 2; a < rawW%2; ++a) {
Тогда положительные и отрицательные точки плоскости имели бы строго совпадающие координаты и картинка была бы более правдоподобной. Но вообще, чтобы считать Мандельброта (да и ваще такие чувствительные к погрешностям задачи) аккуратно- нужно повыше точность представления чисел использовать, но это отдельная песня.
алгоритм корректен
завитки там не из-за накопления ошибки а из-за того что это НЕ ЦЕНТР множества Мандельброта (хоть и с "белой центральной ляпкой" в кадре, но это не она а её не симметричные клоны в глубинах фрактала)
читайте развернутый комментарий выше
дополнительно, если вам интересно как выглядит предел точности представления чисел на множестве Мандельброта - откройте XAOS и сделайте максимальный зум. там не происходит нарушения симметрии, там картинка распадается в шум


в центре Мандельброт и вокруг него- симметричныые относительное вертикали узорчики. но симметричные. а не как у Вас закрученные по часовой стрелке.
да нет же. вы троллите или реально не понимаете? то что вы осилили зеркалирование в пеинте не добавляет вам правоты
эти участки фрактала ДОЛЖНЫ БЫТЬ НЕ СИММЕТРИЧНЫ потому что это НЕ ЦЕНТР
вы видите белое пятно и думаете что это центр. ЭТО НЕ ЦЕНТР учите матчасть структуры множества Мандельброта
Надеялся, что оно заведётся на любой платформе, а оно только под windows окошки делает. Взяли б какой-нибудь SDL или raylib для универсальности.

Множество Мандельброта — видео! 60 FPS и вращение палитры — анимация. И распараллеливаем. И суперсэмплингом. На C++