Фрактал горящего корабля

Из Википедии, бесплатной энциклопедии
Качественное изображение большого корабля в левой антенне
Полный фрактал.
Обзорное изображение высокого качества фрактала «Горящий корабль»
Цепь горящих кораблей.
Наш корабль горит.

Фрактал «Горящий корабль» , впервые описанный и созданный Михаэлем Мишеличем и Отто Э. Рёсслером в 1992 году, генерируется путем итерации функции:

в сложной плоскости который либо ускользнет, ​​либо останется ограниченным. Разница между этим расчетом и расчетом для набора Мандельброта заключается в том, что действительным и мнимым компонентам присваиваются соответствующие абсолютные значения перед возведением в квадрат на каждой итерации. [1] Отображение является неаналитическим, поскольку его действительная и мнимая части не подчиняются уравнениям Коши – Римана . [2] Обратите внимание, что практически все изображения фрактала Горящего Корабля отражаются поперек -ось для эстетических целей, а некоторые также отражаются на -ось. [3]

Реализация [ править ]

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

В приведенной ниже реализации псевдокода жестко закодированы сложные операции для Z. Рассмотрите возможность реализации операций с комплексными числами , чтобы обеспечить более динамичный и многократно используемый код.

для каждого  пикселя (  x  ,  y  ) на экране  выполните  : 
      x  := масштабированная координата x пикселя (масштабированная по шкале Мандельброта X (-2,5, 1)) 
      y  := масштабированная координата y пикселя (масштабированная по шкале Y Мандельброта (-1, 1)) 

      zx  :=  x   // zx представляет действительную часть z 
     zy  :=  y   // zy представляет мнимую часть z  

     итерации  := 0 
      максимальная_итерация  := 100 
 
    while  (zx*zx + zy*zy < 4  и  итерация < max_iteration)  do 
         xtemp  := zx*zx - zy*zy + x  
          zy  := abs(2*zx*zy) + y  // abs возвращает абсолютное значение 
         zx  := xtemp 
          итерация  :=  итерация  + 1 

      if   iteration  =  max_iteration   then   // Принадлежит набору 
         return   InsideColor 

     return   (max_iteration/iteration)  ×  цвет 

Ссылки [ править ]

  1. ^ Агарвал, Шафали; Неги, Ашиш (2013). «Изобретательский горящий корабль». Международный журнал достижений в области техники и технологий .
  2. ^ Майкл Мишелич и Отто Э. Рёсслер (1992). «Горящий корабль» и его квази-юлийские декорации». В: Компьютеры и графика Том. 16, № 4, стр. 435–438, 1992. Перепечатано в издательстве Клиффорд А. Пиковер . (1998). Хаос и фракталы: компьютерное графическое путешествие — сборник передовых исследований за 10 лет . Амстердам, Нидерланды: Elsevier. ISBN   0-444-50002-2
  3. ^ «HPDZ.NET — Фотографии — Горящий корабль» .

Внешние ссылки [ править ]