Черепа́шья гра́фика — принцип организации библиотеки графического вывода, построенный на метафоре ЧерепахиНиколов Р., Сендова Е. Начала информатики. Язык Лого / Под ред. Б. Сендова, Пер. с болг. Под ред. А. В. Гиглавого. М.: Гл. ред. физ.-мат. лит., 1989. ISBN 5-02-013998-X, воображаемого (а в некоторых экспериментах и реального) роботоподобного устройства, которое перемещается по экрану или бумаге и поворачивается в заданных направлениях, при этом оставляя (или, по выбору, не оставляя) за собой нарисованный след заданного цвета и ширины.

Базовые принципы Впервые, по-видимому, черепашья графика была применена при реализации языка программирования Лого, в дальнейшем использовалась в ряде графических библиотек и систем программирования.

Фактически используется управление рисованием в полярной системе координат, связанной с текущим положением черепахи.

Базовые команды: повернуть направо / повернуть налево (на указанный угол) переместиться вперёд / переместиться назад (на указанное расстояние, обычно в условных «шагах», часто равных по длине размеру пикселя экрана) поднять перо / опустить перо установить новый цвет пера / установить новую толщину пера установить новый курс / установить новое место (поворот и перемещение относительно базовой Декартовой системы координат листа) стереть всё показать черепаху / спрятать черепаху получить значения текущих координат, угла поворота черепахи, цвета и толщины пера

В системах, поддерживающих работу с несколькими черепахами, обычно есть команды добавления и удаления черепахи задания черепахе имени и обращения к ней по имени назначения черепахе команд, выполняемых черепахой асинхронно, в автономном режиме перемещения черепахи на задний/на передний план

В системах, нацеленных на детей, например, в системе ЛогоМиры, есть возможность менять внешний вид черепахи, заменяя её стандартный вид на картинку из комплекта поставки или на нарисованную вручную. Кроме того, изображение черепахи можно делать крупнее или мельче, а также отпечатывать на листе или наоборот, копировать с листа.

Одним из применений черепашьей графики являются L-системы, предоставляющие механизм для визуализации фрактальных кривых.

Примеры

В качестве примера рассмотрим рисование в начале координат квадрата со стороной в 100 точек в «обычной» графике: line (0, 0, 0, 100); line (0, 100, 100, 100); line (100, 100, 100, 0); line (100, 0, 0, 0);

то же самое в черепашьей графике, на языке Лого: repeat 4 [forward 100 right 90]

Обобщить данный пример для случая N-угольника в «обычной» графике уже довольно затруднительно, в то время как в черепашьей графике это так же просто: repeat :N [forward 100 right 360/:N]

Пример рисования квадрата на языке Python

import turtle for i in range(4): turtle.forward(50) turtle.left(90)

Примечания

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