stringtranslate.com

Графика черепахи

В компьютерной графике графика черепахи — это векторная графика, использующая относительный курсорчерепаха ») на декартовой плоскости (оси x и y) . Графика черепахи — ключевая особенность языка программирования Logo . [1]

Обзор

Анимация, демонстрирующая, как черепаха используется для создания графики путем комбинирования команд «вперед» и «поворот», пока ручка касается бумаги.
Спираль, нарисованная с помощью итеративного алгоритма графики черепахи
Графический узор черепахи, нарисованный с помощью программы Python

У черепахи есть три атрибута: местоположение, ориентация (или направление) и ручка. Ручка тоже имеет атрибуты: цвет, ширина и состояние вкл/выкл (также называемое вниз и вверх ).

Черепаха движется с помощью команд, которые относятся к ее собственному положению, например, «перейти вперед на 10 клеток» и «повернуть налево на 90 градусов». Ручкой, которую несет черепаха, также можно управлять, включив ее, установив ее цвет или ширину. Студент может понять (и предсказать и рассуждать) о движении черепахи, представив, что бы он сделал, если бы он был черепахой. Сеймур Паперт назвал это «телесно-синтонным» рассуждением.

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

Геометрия Черепахи также иногда используется в графических средах как альтернатива строго координатно-адресованной графической системе.

История

Графика черепахи часто ассоциируется с языком программирования Logo . [2] Сеймур Паперт добавил поддержку графики черепахи в Logo в конце 1960-х годов для поддержки своей версии робота-черепахи , простого робота, управляемого с рабочей станции пользователя, который предназначен для выполнения назначенных ему функций рисования с помощью небольшой выдвижной ручки, установленной в корпусе робота или прикрепленной к нему. Геометрия черепахи работает несколько иначе, чем ( x , y ) адресованная декартовой геометрии , будучи в основном векторной (т. е. относительное направление и расстояние от начальной точки) по сравнению с системами с координатной адресацией, такими как растровые изображения или растровая графика. С практической точки зрения использование геометрии черепахи вместо более традиционной модели имитирует фактическую логику движения робота-черепахи. Черепаха традиционно и чаще всего представляется графически либо в виде треугольника, либо в виде значка черепахи (хотя она может быть представлена ​​любым значком).

Сегодня стандартная библиотека языка программирования Python включает графический модуль Turtle. [3] Как и его предшественник Logo, реализация Turtle в Python позволяет программистам управлять одной или несколькими черепашками в двумерном пространстве. Поскольку стандартный синтаксис Python, поток управления и структуры данных могут использоваться вместе с модулем turtle, turtle стал популярным способом для программистов, изучающих Python, ознакомиться с основами языка. [4]

Расширение до трех измерений

3D-графика черепах, созданная с помощью Cheloniidae Turtle Graphics
Узор, нарисованный с помощью программы Python

Идеи, лежащие в основе графики черепахи, можно расширить, включив в нее трехмерное пространство. Это достигается с помощью одной из нескольких различных моделей координат. Распространенная настройка — декартово-вращательная, как и в случае с оригинальной 2D-черепашкой: дополнительный вектор «вверх» ( нормальный вектор ) определяется для выбора плоскости, в которой вращается 2D-вектор «вперед» черепахи; сам вектор «вверх» также вращается вокруг вектора «вперед». По сути, черепаха имеет два разных угла направления, один внутри плоскости, а другой определяет угол плоскости. Обычно изменение угла плоскости не перемещает черепаху, в соответствии с традиционной настройкой.

Verhoeff 2010 [5] реализует подход с двумя векторами; команда roll используется для вращения вектора «вверх» вокруг вектора «вперед». Статья переходит к разработке алгебраической теории для доказательства геометрических свойств из синтаксических свойств базовых программ черепахи. Одно из открытий заключается в том, что команда dive на самом деле является сокращением последовательности turn-roll-turn.

Cheloniidae Turtle Graphics — это библиотека 3D-черепах для Java . Она имеет команду крена (такую ​​же, как roll ) и команду тангажа (такую ​​же, как dive ) в "Rotational Cartesian Turtle". Другие координатные модели, включая неевклидову геометрию, разрешены, но не включены. [6]

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

Анимированный gif с черепахой в MSWLogo ( Cycloid ) [7]

Ссылки

  1. ^ Голдман, Рон; Шефер, Скотт; Джу, Тао. «Геометрия черепахи в компьютерной графике и автоматизированном проектировании» (PDF) . CSE.WUSTL.edu .
  2. ^ Торнбург, Дэвид Д. (март 1983 г.). «Друзья черепахи: о логотипе и черепахах». Compute! . стр. 148 . Получено 6 октября 2013 г. .
  3. ^ "25.1. черепаха — Графика черепахи — Документация Python 3.7.0". docs.python.org . Получено 23.08.2018 .
  4. ^ "3. Привет, маленькие черепашки! — Как думать как компьютерный ученый: обучение с Python 3". python.camden.rutgers.edu . Получено 23.08.2018 .
  5. ^ Verhoeff, Tom (2010). «3D turtle geometry: artwork, theory, program equivalence and symmetry». International Journal of Arts and Technology . 3 (2/3): 288–319. doi :10.1504/IJART.2010.032569 . Получено 28 февраля 2021 г.
  6. ^ Спенсер Типпинг о cheloniidae (получено 2016-9-17)
  7. ^ Пьетрокола, Джорджио (2005). «Тартапелаго». Маэкла .

Дальнейшее чтение