Кривая госпера


Из Википедии, свободной энциклопедии
  (Перенаправлен с острова Госпер )
Перейти к навигации Перейти к поиску

Госпер кривой , также известный как Пеано-Госпером кривой , [1] назван в честь Билла Госпер , также известный как flowsnakeнепроизвольная перестановка звуков из снежинки ), является пространство заполнения кривой , предел которой множество Rep -7. Это фрактальная кривая аналогична по своей конструкции к кривой дракона и кривой Гильберта .

Кривая Госпера также может использоваться для эффективной иерархической гексагональной кластеризации и индексации. [2]

  • Кривая Госпера четвертой стадии

  • Линия от красной точки к зеленой показывает один шаг построения кривой Госпера.

Алгоритм

Система Линденмайера

Кривая Госпера может быть представлена ​​с помощью L-системы со следующими правилами:

  • Угол: 60 °
  • Аксиома:
  • Правила замены:

В этом случае и A, и B означают движение вперед, + означает поворот влево на 60 градусов, а - означает поворот вправо на 60 градусов - с использованием программы в стиле «черепахи», такой как Logo .

Программа Logo для рисования кривой Госпера с использованием черепаховой графики ( онлайн-версия ):

to  rg  : st  : ln  make  "st: st - 1  make  " ln: ln / sqrt 7  if  : st  >  0  [ rg  : st  : ln  rt  60  gl  : st  : ln  rt  120  gl  : st  : ln  lt  60  rg  : st  : ln  lt  120  rg  : st  : ln  rg  : st  : ln  lt  60 gl  : st  : ln  rt  60 ]  если  : st  =  0  [ fd  : ln  rt  60  fd  : ln  rt  120  fd  : ln  lt  60  fd  : ln  lt  120  fd  : ln  fd  : ln  lt  60  fd  : ln  rt  60 ] конец to  gl  : st  : ln  make  "st: st - 1  make  " ln: ln / sqrt 7  if  : st  >  0  [ lt  60  rg  : st  : ln  rt  60  gl  : st  : ln  gl  : st  : ln  rt  120  gl  : st  : ln  rt  60  rg  : st  : ln  lt  120  rg  : st  : ln lt  60  gl  : st  : ln ]  если  : st  =  0  [ lt  60  fd  : ln  rt  60  fd  : ln  fd  : ln  rt  120  fd  : ln  rt  60  fd  : ln  lt  120  fd  : ln  lt  60  fd  : ln ] конец

Программа может быть запущена, например, с помощью rg 4 300или альтернативно gl 4 300.

Python

Программа Python , которая использует вышеупомянутые правила L-системы, чтобы нарисовать кривую Госпера с использованием графики черепахи ( онлайн-версия ):

импортная  черепахаdef  gosper_curve ( order :  int ,  size :  int ,  is_A :  bool  =  True )  ->  None :  "" "Нарисуйте кривую Госпера." ""  if  order  ==  0 :  turtle . вперед ( размер )  возврат  для  операции  в  "AB - B + A ++ AA + B-"  if  is_A  else  "+ A-BB - B-A ++ A + B" :  gosper_op_map [ op ] ( order  -  1 , размер )gosper_op_map  =  {  «A» :  лямбда  o ,  размер :  gosper_curve ( o ,  size ,  True ),  «B» :  лямбда  o ,  размер :  gosper_curve ( o ,  size ,  False ),  «-» :  лямбда  o ,  размер :  черепаха . right ( 60 ),  "+" :  лямбда  o ,  размер : черепаха . left ( 60 ), } size  =  10 order  =  3 gosper_curve ( порядок ,  размер )

Характеристики

Пространство, заполненное кривой, называется островом Госпера . Первые несколько его итераций показаны ниже:

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

Смотрите также

использованная литература

  1. ^ Вайсштейн, Эрик В. "Кривая Пеано-Госпера" . MathWorld . Проверено 31 октября 2013 года .
  2. ^ «Иерархическая гексагональная кластеризация и индексирование», 2019, https://doi.org/10.3390/sym11060731

внешние ссылки

Источник « https://en.wikipedia.org/w/index.php?title=Gosper_curve&oldid=1003034262#Properties »