Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

Здравствуйте, Ильгиз. Математика - царица наук (Карл Гаусс). Изучение математики начинается с детского сада, когда нас учат считать и выполнять простые арифметические операции. Любой, даже самый простейший алгоритм будет связан с арифметическими...
Я хотел узнать математика это обязательно в программирование. Пять лет назад просто из любопытства я увлекся HTML потом изучил CSS и JvaScript потом изучил PHP и Java. Как то не задумывался и начал смотреть форумы и узнал что без математики не...
Все верно, но так же необходимо зайти в: Компоновщик -> Ввод -> Дополнительные зависимости Здесь необходимо нажать изменить и в Дополнительные зависимости прописать это: SDL2.lib SDL2main.lib SDL2test.lib Без этого не заработает. (MVS 2015)
Спасибо за реализацию, она действительно быстрая. Но не все линии отрисовывает в нужную сторону... Необходимо добавить проверку для случая X-линии if(y1 "<" y0) grad=-grad; и аналогично для Y-линии if(x1 "<" x0) grad=-grad; P.S. На...
Отличные уроки(учу GL по ним), только в renderScene нужно добавить очистку буфера цвета и буфера глубины. При изменении размеров треугольники размножаются)

Счетчики и рейтинг

Яндекс.Метрика Рейтинг@Mail.ru


Папоротник Барнсли - фрактал, названный в честь Майкла Барнсли, британского математика, который первым описал его в своей книге "Фракталы Повсюду". Является одним из основных примеров "самоподобных" множеств, т.е. представляет собой математически генерируемый "шаблон", воспроизводимый при любом увеличении или уменьшении количества итераций.

Построение

Папоротник Барнсли строится при помощи 4-х афинных преобразований вида:

Барнсли представил свой IFS-код папоротника (Iterated function system - "Система повторяющихся функций") в виде матрицы значений:

w a b c d e f p
ƒ1 0 0 0 0.16 0 0 0.01
ƒ2 0.85 0.04 -0.04 0.85 0 1.6 0.85
ƒ3 0.2 -0.26 0.23 0.22 0 1.6 0.07
ƒ4 -0.15 0.28 0.26 0.24 0 0.44 0.07

где столбцы a-f - коэффициенты уравнения, а p - коэффициент вероятности, x и y - координаты.
Данная таблица отвечает следующим преобразованиям:




Папоротник Барнсли теоретически может быть построен вручную. Т.е. Вы берете ручку, лист в бумаги в мелкую клетку и следуете матрице коэффициентов. Однако, количество необходимый итераций исчисляется десятками тысяч, что делает использование компьютера, мягко говоря, желательным.
Варьируя значения констант в таблице можно получать множество различных моделей, отличных от Папоротника Барнсли:

Телиптерисовый папоротник





Лептоспоранговый папоротник



Пошаговое моделирование


Первая точка находится в начале координат (х0 = 0, у0 = 0), а затем новые точки итеративно вычисляются путем случайного применения одного из следующих четырех преобразований координат:

  • (1)xn + 1 = 0; yn + 1 = 0.16 yn.

Данное преобразование выбирается в 1% случаев и указывает на точку у основания "стебля". Эта часть рисунка в результате итерационных преобразований завершается первой.

  • (2) xn + 1 = 0.85 xn + 0.04 yn; yn + 1 = −0.04 xn + 0.85 yn + 1.6.

Преобразование (2) используется в 85% случаев и указывает на любую точку листовки попадающую в красный треугольник

  • (3) xn + 1 = 0.2 xn − 0.26 yn; yn + 1 = 0.23 xn + 0.22 yn + 1.6.

Выбирается в 7% случаев - попадания точки в синий треугольник и симметричного ему относительно главного стебля треугольника.

  • (4)xn + 1 = −0.15 xn + 0.28 yn; yn + 1 = 0.26 xn + 0.24 yn + 0.44.

В оставшихся 7% случаев используется преобразование (4) - для симметричных преобразованию (3) относительно стеблей 2-го порядка позиций.

Демонстрационные примеры по теме