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

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

Кривая Госпера, известная также как кривая Пеано-Госпера[1], названная именем Била Госпера[en], — это заполняющая пространство кривая. Кривая является фрактальной кривой, подобной кривым дракона и Гильберта.

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




Алгоритм

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

Кривую Госпера можно можно представить с помощью системы Линденмайера[en] со следующими правилами:

  • Угол: 60°
  • Аксиома: <math>A</math>
  • Правила подстановки:
    • <math>A \mapsto A-B--B+A++AA+B-</math>
    • <math>B \mapsto +A-BB--B-A++A+B</math>

В этом случае A и B означают движение вперёд, + означает поворот влево на 60º, а — означает поворот на 60º вправо с использованием «черепашьего» стиля программирования, как в Лого.

Лого

Программа на Лого для рисования кривой Госпера с использованием черепашьей графики ([logo.twentygototen.org/mJjiNzK0 онлайн-версия]):

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]
if :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]
end

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]
if :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]
end

Программу можно запустить, например, командой rg 4 300 или gl 4 300.

Свойства

Заполненные кривой фрагменты плоскости называются островами Госпера. Несколько первых итераций приведены ниже:

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

См. также

Напишите отзыв о статье "Кривая Госпера"

Примечания

  1. Weisstein, Eric W. [mathworld.wolfram.com/Peano-GosperCurve.html Peano-Gosper Curve]. MathWorld. Проверено 31 октября 2013.

Литература

Ссылки

  • kilin.u-shizuoka-ken.ac.jp/museum/gosperex/343-024.pdf
  • kilin.clas.kitasato-u.ac.jp/museum/gosperex/343-024.pdf
  • www.mathcurve.com/fractals/gosper/gosper.shtml (in French)
  • mathworld.wolfram.com/GosperIsland.html
  • logo.twentygototen.org/mJjiNzK0
  • 80386.nl/projects/flowsnake/