Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Компьютерная графика
Computer Graphics
В компьютерной графике, черепашья графика — это векторная графика, использующая относительный курсор («черепаха») на декартовой плоскости (оси x и y). Черепашья графика является ключевой особенностью языка программирования Logo.
In computer graphics, turtle graphics are vector graphics using a relative cursor (the "turtle") upon a Cartesian plane (x and y axis). Turtle graphics is a key feature of the Logo programming language.
Обзор
Черепаха имеет три атрибута: местоположение, ориентацию (или направление) и перо. У пера также есть атрибуты: цвет, ширина и состояние включения/выключения (также называемое опущенным и поднятым). Черепаха перемещается командами, задающими относительное движение от её текущей позиции, например, "двинуться вперёд на 10 шагов" и "повернуться на 90 градусов влево". Пером, которое несёт черепаха, также можно управлять, включая его, задавая его цвет или ширину. Ученик может понять (и предсказать и рассуждать о) движении черепахи, представляя, что он сам сделал бы, будучи черепахой. Сеймур Паперт назвал это "телесной синхронностью" (или "синтоническим рассуждением тела"). Полная система черепаховой графики требует управления потоком выполнения, процедур и рекурсии: многие программы для рисования черепахой этого не обеспечивают. Из этих базовых элементов можно строить более сложные фигуры, такие как квадраты, треугольники, круги и другие составные фигуры. Идея черепаховой графики, например, полезна в системе Линденмайера для генерации фракталов. Черепаховая геометрия также иногда используется в графических средах как альтернатива графической системе, основанной на строгих координатах.
The turtle has three attributes: a location, an orientation (or direction), and a pen. The pen, too, has attributes: color, width, and on/off state (also called down and up). The turtle moves with commands that are relative to its own position, such as "move forward 10 spaces" and "turn left 90 degrees". The pen carried by the turtle can also be controlled, by enabling it, setting its color, or setting its width. A student could understand (and predict and reason about) the turtle's motion by imagining what they would do if they were the turtle. Seymour Papert called this "body syntonic" reasoning. A full turtle graphics system requires control flow, procedures, and recursion: many turtle drawing programs fall short. From these building blocks one can build more complex shapes like squares, triangles, circles and other composite figures. The idea of turtle graphics, for example is useful in a Lindenmayer system for generating fractals. Turtle geometry is also sometimes used in graphics environments as an alternative to a strictly coordinate addressed graphics system.
История
Графика черепахи часто ассоциируется с языком программирования Logo. Сеймур Паперт добавил поддержку графики черепахи в Logo в конце 1960-х годов для поддержки своей версии робота-черепахи – простого робота, управляемого с рабочей станции пользователя, предназначенного для выполнения заданных функций рисования с помощью небольшой выдвижной ручки, встроенной в корпус робота или прикреплённой к нему. Геометрия черепахи работает несколько иначе, чем декартова геометрия с координатами (x, y), будучи в основном векторной (то есть основанной на относительном направлении и расстоянии от начальной точки) в отличие от систем, адресуемых по координатам, таких как растровые изображения или растровая графика. С практической точки зрения, использование геометрии черепахи вместо более традиционной модели имитирует логику движения реального робота-черепахи. Черепаха традиционно и чаще всего изображается в виде треугольника или значка черепахи (хотя она может быть представлена любым значком). Сегодня стандартная библиотека языка программирования Python включает графический модуль Turtle. Как и его предшественник Logo, реализация Turtle в Python позволяет программистам управлять одной или несколькими черепахами в двумерном пространстве. Поскольку стандартный синтаксис Python, управление потоком и структуры данных могут использоваться вместе с модулем Turtle, Turtle стал популярным способом для программистов, изучающих Python, освоить основы языка.
Turtle graphics are often associated with the Logo programming language. Seymour Papert added support for turtle graphics to Logo in the late 1960s to support his version of the turtle robot, a simple robot controlled from the user's workstation that is designed to carry out the drawing functions assigned to it using a small retractable pen set into or attached to the robot's body. Turtle geometry works somewhat differently from (x,y) addressed Cartesian geometry, being primarily vector based (i. e. relative direction and distance from a starting point) in comparison to coordinate addressed systems such as bitmaps or raster graphics. As a practical matter, the use of turtle geometry instead of a more traditional model mimics the actual movement logic of the turtle robot. The turtle is traditionally and most often represented pictorially either as a triangle or a turtle icon (though it can be represented by any icon). Today, the Python programming language's standard library includes a Turtle graphics module. Like its Logo predecessor, the Python implementation of turtle allows programmers to control one or more turtles in a two dimensional space. Since the standard Python syntax, control flow, and data structures can be used alongside the turtle module, turtle has become a popular way for programmers learning Python to familiarize themselves with the basics of the language.
Расширение на три измерения
Идеи, лежащие в основе графики черепах, могут быть расширены для работы с трехмерным пространством. Это достигается использованием одной из нескольких различных моделей координат. Распространенной является картографическая ротационная модель, аналогичная оригинальной 2D-черепахе: определяется дополнительный вектор "вверх" (нормальный вектор) для выбора плоскости, в которой вращается 2D-вектор "вперед" черепахи; сам вектор "вверх" также вращается вокруг вектора "вперед". Фактически, у черепахи два различных угла ориентации: один – в плоскости, а другой – определяющий угол наклона этой плоскости. Обычно изменение угла наклона плоскости не приводит к перемещению черепахи, что соответствует традиционной схеме. Verhoeff (2010) реализует двухвекторный подход, используя команду roll для вращения вектора "вверх" вокруг вектора "вперед". В статье разрабатывается алгебраическая теория для доказательства геометрических свойств на основе синтаксических свойств базовых программ для черепахи. Одним из ключевых выводов является то, что команда "ныряния" (dive) фактически является сокращением последовательности "поворот-наклон-поворот". Cheloniidae Turtle Graphics – это 3D-библиотека графики черепах для Java. Она включает команды "крен" (bank, эквивалентно roll) и "тангаж" (pitch, эквивалентно dive) в "Ротационной картографической черепахе". Другие модели координат, включая неевклидову геометрию, допускаются, но не включены.
The ideas behind turtle graphics can be extended to include three dimensional space. This is achieved by using one of several different coordinate models. A common setup is cartesian rotational as with the original 2D turtle: an additional "up" vector (normal vector) is defined to choose the plane the turtle's 2D "forward" vector rotates in; the "up" vector itself also rotates around the "forward" vector. In effect, the turtle has two different heading angles, one within the plane and the other determining the plane's angle. Usually changing the plane's angle does not move the turtle, in line with the traditional setup. Verhoeff 2010 implements the two vector approach; a roll command is used to rotate the "up" vector around the "forward" vector. The article proceeds to develop an algebraic theory to prove geometric properties from syntactic properties of the underlying turtle programs. One of the insights is that a dive command is really a shorthand of a turn roll turn sequence. Cheloniidae Turtle Graphics is a 3D turtle library for Java. It has a bank command (same as roll) and a pitch command (same as dive) in the "Rotational Cartesian Turtle". Other coordinate models, including non Euclidean geometry, are allowed but not included.