stringtranslate.com

Черепашья графика

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

Обзор

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

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

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

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

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

История

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

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

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

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

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

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

Cheloniidae Turtle Graphics — это библиотека 3D-черепах для Java . В «Вращательной декартовой черепахе» у него есть команда крена (такая же, как крен ) и команда тангажа (такая же, как и пикирование ). Другие координатные модели, включая неевклидову геометрию, разрешены, но не включены. [6]

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

Анимированная гифка с черепахой в MSWLogo ( Cycloid ) [7]

Рекомендации

  1. ^ Голдман, Рон; Шефер, Скотт; Джу, Тао. «Геометрия черепахи в компьютерной графике и автоматизированном проектировании» (PDF) . CSE.WUSTL.edu .
  2. ^ Торнбург, Дэвид Д. (март 1983 г.). «Друзья черепахи: о логотипе и черепахах». Вычислите! . п. 148 . Проверено 6 октября 2013 г.
  3. ^ «25.1. черепаха — графика черепахи — документация Python 3.7.0» . docs.python.org . Проверено 23 августа 2018 г.
  4. ^ «3. Привет, маленькие черепахи! - Как думать как ученый-компьютерщик: обучение с помощью Python 3» . python.camden.rutgers.edu . Проверено 23 августа 2018 г.
  5. ^ Верховефф, Том (2010). «3D-геометрия черепахи: рисунок, теория, программная эквивалентность и симметрия». Международный журнал искусств и технологий . 3 (2/3): 288–319. дои : 10.1504/IJART.2010.032569 . Проверено 28 февраля 2021 г.
  6. ^ Спенсер Типпинг о cheloniidae (получено 17 сентября 2016 г.)
  7. ^ Пьетрокола, Джорджио (2005). «Тартапелаго». Маэкла .

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