Как сделать звезду в черепахе

«Черепашья графика» при помощи turtle, рисование при помощи алгоритма

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Черепашья графика, turtle – принцип организации библиотеки графического вывода, построенный на метафоре Черепахи, воображаемого роботоподобного устройства, которое перемещается по экрану или бумаге и поворачивается в заданных направлениях, при этом оставляя (или, по выбору, не оставляя) за собой нарисованный след заданного цвета и ширины.

Проще: черепашка ползает по экрану и рисует. Мы управляем черепашкой на плоскости при помощи программы.

Начало работы. Движения

В первой строке необходимо добавить:

Мы командуем черепашкой простыми словами на английском языке. left, right – поворот налево и направо, forward и backward – движение вперед и назад. В программе каждое действие – вызов функции из модуля turtle. Простая программа:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Не похоже на черепашку, это ползающая стрелка! Исправим это:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Отлично! Теперь это черепашка, пусть и монохромная. Дополнительно, функция exitonclick() позволяет закрыть окно и завершить выполнение программы кликом мышкой по окну.
А еще можно использовать сокращенные названия функций: fd(100) вместо forward(100), rt вместо right, lt вместо left, bk вместо backward.

Геометрические фигуры

Рисуем простые геометрические фигуры:

Если мы хотим выполнить инструкции n раз, мы пишем их в цикле

Далее идут инструкции с отступом в 4 пробела. Код с отступами – тело цикла. Когда цикл завершается, отступы больше не ставятся.

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

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

Звезда рисуется также:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Самостоятельно:

Решения

Изменяем параметры во время движения

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

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Больше программирования!

Напишем обобщенную программу рисования выпуклых равносторонних многоугольников. num_sides – количество граней, side_length – длина грани, angle – угол поворота.

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Что будет, если на каждом шаге увеличивать длину пути? В первый день 10 шагов, во второй – 20, далее 30, 40 и так до 200:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Координаты на плоскости

Положение на плоскости определяется двумя числами, x и y:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Черепашку в программе можно перемещать функцией goto(x, y). x и y – числа, или переменные. goto(0, 0) переместит черепашку в начало координат.

Вместо звезды-спирали мы получили 5 линий, расходящихся из точки начала координат.

Круг и точка

Не хватает плавных изгибов? На помощь приходят функции dot() и circle():

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Самостоятельно:

Решения

Делаем фигуры равновеликими

Площадь квадрата со стороной 100 пикселей – 10 000 квадратных пикселей. Вычислим площади всех фигур со стороной 100 от треугольника до 7-угольника. Формула площади правильного многоугольника содержит тангенс, поэтому «поверим на слово» результату, зависимости количество углов (вершин) – площадь:

Изобразим ее на графике:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Получается, что площадь 7-угольника в 36339.12 / 4330.13 = 8.4 раза больше, чем площадь треугольника! Это очень заметно на рисунке:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Чтобы фигуры стали равновеликими, надо сделать длину грани вместо константы 100 – переменной, которая зависит от количества углов.

Как: приведем все площади к 10000. Для треугольника площадь увеличится на 10000 / 4330.13 = 2.31 раза. Для 7-угольника – уменьшится в 36339.12 / 10000 = 3.63 раз. Значит, стороны должны измениться в 1.52 и 0.52 раз соответственно, то есть, до 152 и 32.7 пикселей (снова «верим на слово»). Эту зависимость можно нащупать «на глаз», в чем и заключалось задание.

Наша программа без труда масштабируется до большего количества фигур:

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Программа, в которой вычисляются точные значения:

Как построить график (если кто захочет):

Другие полезные функции:

Пример двух рисунков – экземпляров класса Turtle() – на одном полотне

Как сделать звезду в черепахе. Смотреть фото Как сделать звезду в черепахе. Смотреть картинку Как сделать звезду в черепахе. Картинка про Как сделать звезду в черепахе. Фото Как сделать звезду в черепахе

Итог: функции и классы на примере turtle

Графический интерфейс средствами библиотеки turtle.

Нарисуем прямоугольник и сделаем его кнопкой: при нажатии кнопка исчезает и появляется круг:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *