Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/91: Рейтинг темы: голосов - 91, средняя оценка - 4.86
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1

Построение фрактала Мандельброта

20.01.2013, 18:45. Показов 21730. Ответов 220
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добавил поток для построения, но рано обрадовался: прога как зависала, так виснет и сейчас.
И как использовать все ядра процессора на все 100? Кто-нибудь знает?
Вложения
Тип файла: zip Mandelbrot.zip (847.5 Кб, 103 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.01.2013, 18:45
Ответы с готовыми решениями:

Построение фрактала Коха (основа - правильный треугольник)
помогите пожалуйста надо сделать так, что бы производилось построение фрактала Коха основа правильный триугольник исходя из различных...

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

Генерация фрактала Мандельброта. NASM + OpenGL
Всем здравия! Помогите мне, нужна помощь опытных людей. Замучился совсем. Вроде делаю всё как надо, но выводит непонятно что. Основная...

220
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
29.04.2013, 22:18
Студворк — интернет-сервис помощи студентам
Сделал вариант на базе "Длинной" арифметики (160-bit). Теперь можно сделать до 90 зумов (Extended - 55). Правда работает на порядок медленнее, если не хуже.
Вложения
Тип файла: rar Project1_.rar (231.4 Кб, 13 просмотров)
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
29.04.2013, 23:16  [ТС]
gorfil, Отлично работает, но построение лучше производить из центра. И как мне это сделать? Я даже код предлагал, но я так и не врубился в SSE
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
30.04.2013, 09:09
Из центра конечно лучше, только реализовать это будет непросто.
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
30.04.2013, 17:11  [ТС]
gorfil, помоги вытянуть число из кода SSE! Пожалуйста... При попытке у меня рисует белый экран. А для создания видео надо сохранять не BitMap, как делает это Fractal Extreme, а количество итераций и число Z на каждый пиксел. Потом реализовать для IterDat'ы операции StretchDraw и быструю работу с графикой, а также интерполяцию. Быструю-быструю. Потом визуализация - Как в одной из наших тем.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
30.04.2013, 18:59
Цитата Сообщение от SeryZone Посмотреть сообщение
помоги вытянуть число из кода SSE!
А код-то где?
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
30.04.2013, 20:34  [ТС]
gorfil, на прошлой странице этой темы. Там у меня симметрия не получилась ещё
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
30.04.2013, 21:17
Там на SSE вообще ничего нет.
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
30.04.2013, 22:29  [ТС]
gorfil, код на построение не видит числа Z

Добавлено через 1 минуту
Как нет????
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
03.05.2013, 10:05  [ТС]
gorfil, По поводу построения из центра:
1) Надо преобразовать плоскость BitMap, на котором мы строим в обычные Декартовы координаты, т. е. чтобы центре была точка (0,0), а не (1280/2,720/2). Как в школе! Я вот формулы подзабыл, как сделать, но всё же:
Delphi
1
2
x := x - 640 // 1280/2 - 640 аналогично
y = -y + 360 //вроде так...
2) А на обычной плоскости декартовых координат, где 0 в центре, можно начинать строить:
От -128 до 128 по о. Х
И от -72 до 72 по оси Y аналогично.
В общем, движение по спирали будет из центра! Вот только надо будет ещё один поток добавлять для преобразований...
Миниатюры
Построение фрактала Мандельброта  
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
03.05.2013, 11:24
SeryZone, это все понятно.
Проблема в другом:
Битмап представляет собой одномерный массив строк пикселей. И при рисовании из центра придется прыгать из одной части этого массива в другую по некой формуле (а может и не одной), что неизбежно приведет к значительному замедлению построения картинки.
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
03.05.2013, 14:15  [ТС]
gorfil, Тогда также - из центра, но начиная с линии 720/2 идём в два потока - один вверх, друго вниз. Получается какбы появление картинки не по спирали, а чисто из центральной линии. Если BitMap - набор строк, то начнём с 720/2 - с 360-й строки и до границ.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
03.05.2013, 19:36
Так в моем коде, который я тут когда-то выкладывал, так и сделано.
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
03.05.2013, 23:46  [ТС]
Вот мой код. Там на SSE первая наша версия. Как вывести число Z? У меня не выводит. Прошу о помощи!
Вложения
Тип файла: zip The Mandelbrot Set.zip (3.07 Мб, 7 просмотров)
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
04.05.2013, 00:06
SeryZone, это называется FPU (с SSE ничего общего).
И Z там уже выведено в переменную ZZ.
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
04.05.2013, 00:24  [ТС]
FIL, надо ещё пара идей:
1) Чтобы число Z каждого пикcела сохранялось в массив NumZ[x,y]. А при визуализации можно было использовать Smooth Coloring (Index = iter + 1 - log(log(Zn))/log(2)).
2) Для того, чтобы делать видео, надо научится сохранять в файл не BitMap - картинку, а количество итераций на каждую точку, а то и число Z. Как сжато записать сию инфу? Ведь пикселей 1280х720, а при увеличении может быть больше!
3) Как и в Fractal Extreme, прийдётся отдельно писать визуализатор. Но! Если мне помогут, как записать Iter dat'у, то визуализатор будет не сложно сделать.

Добавлено через 1 минуту
FIL, как сделать первое? Помогите с кодом! Что надо и куда дописать??? Чтобы потом ZZ каждой точки записать в массив NumZ[x,y]?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
04.05.2013, 00:30
Так в чем проблема? Добавляешь 2 массива размером 1280х720 (одномерный или двухмерный): один для Z, другой - для Iter, и пишешь туда инфу вместо Битмапа или параллельно с ним.
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
04.05.2013, 00:32  [ТС]
FIL, Я так и сделал. Но при визуализации Smooth coloring'a из встравки то ли не записывается, то ли я не пойму, но белый экран. Убираю число Z из расцветки - всё норм!
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
04.05.2013, 11:06
Строится одинаково, что с Z, что без нее.
Только в 320 строчке ошибка, надо индексы указать у NumIter:
Delphi
1
for ix := 0 to 1279 do if (NumIter[ix,iy]<=0) then
и Numz[ix,iy]:=ZZ; два раза встречается.
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
04.05.2013, 11:26  [ТС]
Реализовал рендеринг как и в FX'е: рендерю каждый зум - степень двойки, но! Сохраняю не BitMap (он ваще не нужен), а кол-во итераций на каждую точку в файл с программой. Надо: увеличить до определённого места, потом нажать "RENDER", дождаться вычислений.
В файл записывается сначала минимум и максимум итераций, а с новой строки сама дата точек
Дальше гемморой с визуализатором: надо уметь интерполировать или хотя бы рисовать это без потери даты итераций.
Процедура bmp.StretchDraw работает с цветом, а нам надо работать с числами. А потом уже раскрашивать! Есть какие-нибудь подсказки???

А число Z из вставки вытащить так и не удалось
Вложения
Тип файла: zip The Mandelbrot Set.zip (3.07 Мб, 2 просмотров)
0
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
04.05.2013, 11:48  [ТС]
Вот, с режимом Smooth Coloring вообще не получается! А взял твою ASM вставку...
Вложения
Тип файла: zip The Mandelbrot Set.zip (3.07 Мб, 4 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.05.2013, 11:48

Написать код для создания фрактала Мандельброта и Кантора
Кто может предоставить код для создания фрактала Мандельброта и Кантора. Не могу найти реализацию этих двух фракталов на C#.

Построение фрактала
При нажатие на btn2 выдает ошибку ссылаясь на строку 55 и выдает такое сообщение ...

Анимационное построение звёдного фрактала
Необходимо нарисовать звёздный фрактал с использованием анимации. Есть программа рисующая фрактал без анимации.

Построение трехмерного фрактала: как установить точки
Хотел построить трехмерный фрактал в wpf как установить точки? пробовал кубы рисовать вокруг точек но получается слишком большой массив...

Построение фрактала «Треугольник Серпинского» с возможностью изменения числа образующих примитивов с помощью клавиш
Доброго времени суток. Помогите реализовать программу на языке Java реализующую построение фрактала «Треугольник Серпинского» с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
160
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru