Введение

Компьютерная графика

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

Обзор

Черепаха имеет три атрибута: местоположение, ориентацию (или направление) и перо. У пера также есть атрибуты: цвет, ширина и состояние включения/выключения (также называемое опущенным и поднятым). Черепаха перемещается командами, задающими относительное движение от её текущей позиции, например, "двинуться вперёд на 10 шагов" и "повернуться на 90 градусов влево". Пером, которое несёт черепаха, также можно управлять, включая его, задавая его цвет или ширину. Ученик может понять (и предсказать и рассуждать о) движении черепахи, представляя, что он сам сделал бы, будучи черепахой. Сеймур Паперт назвал это "телесной синхронностью" (или "синтоническим рассуждением тела"). Полная система черепаховой графики требует управления потоком выполнения, процедур и рекурсии: многие программы для рисования черепахой этого не обеспечивают. Из этих базовых элементов можно строить более сложные фигуры, такие как квадраты, треугольники, круги и другие составные фигуры. Идея черепаховой графики, например, полезна в системе Линденмайера для генерации фракталов. Черепаховая геометрия также иногда используется в графических средах как альтернатива графической системе, основанной на строгих координатах.

История

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

Расширение на три измерения

Идеи, лежащие в основе графики черепах, могут быть расширены для работы с трехмерным пространством. Это достигается использованием одной из нескольких различных моделей координат. Распространенной является картографическая ротационная модель, аналогичная оригинальной 2D-черепахе: определяется дополнительный вектор "вверх" (нормальный вектор) для выбора плоскости, в которой вращается 2D-вектор "вперед" черепахи; сам вектор "вверх" также вращается вокруг вектора "вперед". Фактически, у черепахи два различных угла ориентации: один – в плоскости, а другой – определяющий угол наклона этой плоскости. Обычно изменение угла наклона плоскости не приводит к перемещению черепахи, что соответствует традиционной схеме. Verhoeff (2010) реализует двухвекторный подход, используя команду roll для вращения вектора "вверх" вокруг вектора "вперед". В статье разрабатывается алгебраическая теория для доказательства геометрических свойств на основе синтаксических свойств базовых программ для черепахи. Одним из ключевых выводов является то, что команда "ныряния" (dive) фактически является сокращением последовательности "поворот-наклон-поворот". Cheloniidae Turtle Graphics – это 3D-библиотека графики черепах для Java. Она включает команды "крен" (bank, эквивалентно roll) и "тангаж" (pitch, эквивалентно dive) в "Ротационной картографической черепахе". Другие модели координат, включая неевклидову геометрию, допускаются, но не включены.