Орбитальная ловушка

редактировать

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

Содержание
  • 1 Примеры
    • 1.1 На основе точек
    • 1.2 На основе линий
  • 2 Алгоритм
  • 3 Ссылки
Примеры
Набор Мандельброта, визуализированный с использованием комбинации креста и точечной орбиты ловушки.

На основе точки

Захват орбиты на основе точки окрашивает точку в зависимости от того, насколько близко орбита функции подходит к одной точке, обычно к исходной точке.

Линейная

Линейная ловушка орбиты окрашивает точку в зависимости от того, насколько близко орбита функции подходит к одной или нескольким линиям, обычно вертикальным или горизонтальным (x = a или y = a линии). Пикаперы являются примером линейной орбитальной ловушки, в которой используются две линии.

Алгоритм

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

Самым известным примером фракталов этого типа является множество Мандельброта, которое основано на функции z n + 1 = z n + c. Наиболее распространенный способ окраски изображений Мандельброта - это выполнение количества итераций, необходимых для достижения определенного значения аварийной защиты, а затем присвоение этому значению цвета. Это называется алгоритмом времени ухода.

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

double distance = 10e5

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

private double getDistance (Complex c, Complex point, int maxIteration) {double distance = 1e20; Комплекс z = новый Комплекс (0, 0); for (int i = 0; i 
Ссылки
  • Карлсон, Пол В. (1999), «Два метода рендеринга художественных орбитальных ловушек для фракталов Ньютона M», Computers Graphics, 23 (6): 925–931, doi : 10.1016 / S0097-8493 (99) 00123-5.
  • Лу, Цзянь; Е, Чжунсин; Цзоу, Юру; Е, Жуйсонг (2005), «Методы рендеринга орбитальной ловушки для создания художественных изображений с кристаллографической симметрией», Компьютеры и графика, 29 (5): 787–794, doi : 10.1016 / j. cag.2005.08.008.
Последняя правка сделана 2021-06-01 13:56:33
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте