В математике орбитальная ловушка - это метод раскрашивания фракталов. изображения основаны на том, насколько близко итерационная функция, используемая для создания фрактала, приближается к геометрической форме, называемой «ловушкой». Типичные ловушки - это точки, линии, круги, формы цветов и даже растровые изображения. Орбитальные ловушки обычно используются для раскрашивания двумерных фракталов, представляющих сложную плоскость.
Захват орбиты на основе точки окрашивает точку в зависимости от того, насколько близко орбита функции подходит к одной точке, обычно к исходной точке.
Линейная ловушка орбиты окрашивает точку в зависимости от того, насколько близко орбита функции подходит к одной или нескольким линиям, обычно вертикальным или горизонтальным (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.