Методы circle и dot модуля turtle языка Python. Круги, дуги, правильные многоугольники и точки
Словарь урока
из модуля turtle: |
|
---|
В модуле turtle языка Python есть метод circle
, который позволяет рисовать в первую очередь окружности (круги), и метод dot
, который выводит на холсте точки.
Радиус круга ‒ это расстояние от его центра до любой точки окружности (края круга). Функция circle
принимает в качестве аргумента радиус. Если он представлен положительным числом, то черепаха будет рисовать окружность, постепенно поворачивая налево, если отрицательным ‒ то направо.
pensize(2) pencolor('darkblue') dot() write('Старт', align='center') circle(100) teleport(0, 100) write('Центр круга', align='center') dot() pensize(1) pencolor('red') forward(100) write('Радиус', align='right')
Угол поворота самой черепахи (ее направление) имеет значение. Так в программе выше у черепахи нулевое направление, то есть она смотрит направо. Рисуя окружность, она постепенно поворачивает налево.
В геометрии есть понятие правильного многоугольника. У таких фигур все стороны равны, также равны между собой все углы. Так квадрат относится к таковым. У него все стороны равны, а углы между соседними составляют по 90 градусов. Другим примером является правильный восьмиугольник.
Круг можно представить как правильный многоугольник с очень большим количеством сторон. От этого стороны становятся маленькими, и угол поворота черепашки при рисовании каждой также мал (не путайте с внутренними углами между сторонами самой фигуры ‒ они, наоборот, становятся большими). Можно представить, что черепаха делает множество мелких шагов. Сколько их требуется, чтобы нарисовать более менее сглаженную окружность, за нас решает модуль turtle.
Однако у метода circle
есть параметр steps
, с помощью которого мы можем отрегулировать количество шагов. Если укажем небольшое количество, то получим уже не круг, а тот или иной правильный многоугольник.
pensize(2) teleport(100, 100) circle(70, steps=4) teleport(-100, 100) circle(60, steps=6) teleport(-100, -100) circle(60, steps=8) teleport(100, -100) circle(60, steps=12)
Черепаха сначала делает поворот и только потом рисует сторону. Поэтому, если она повернута направо, квадрат будет стоять не на своей стороне, а на угле, и походить на ромб.
Еще одним параметром функции circle
является extent
. С его помощью рисуют не целую окружность, а часть. Такие доли окружности называются дугами или арками, половинку окружности называют полукругом. Если полная окружность составляет 360°, то ее половина будет 180°, четверть составит 90° и т. д.
pensize(2) circle(100, extent=135) stamp() teleport(0, 0) stamp() pencolor('blue') circle(100, extent=135)
В примере черепаха рисует две одинаковые дуги из одного и того же места холста ‒ его центра. Однако вторая дуга выводится под другим углом. Это связано с тем, что после вывода первой черепаха оказалась повернута в другую сторону. Таким образом, меняя не только положение исполнителя, но и его направление, можно выводить любые дуги. Кроме того, параметру extent
можно передавать отрицательное число, и тогда дуга будет рисоваться в обратную сторону ‒ по часовой стрелке.
pensize(3) circle(100, extent=95) teleport(0, 0) setheading(0) pencolor('red') circle(100, extent=-95)
В circle
можно передавать сразу три аргумента ‒ для радиуса, параметров steps
и extent
. Но в этом случае вы получите не часть многоугольника, а дугу, состоящую из указанного числа отрезков.
Метод dot
мы уже использовали в первом примере. Однако его можно вызывать не только без аргументов, также передавая размер и цвет точки.
backward(150) dot(50) forward(100) dot(50, 'green') forward(100) dot(50, 'orange') pencolor('brown') forward(100) dot(50)
Если цвет не задан в dot
, точка выводится цветом пера.
Задания для самостоятельной работы
- Напишите код вывода на холсте двух кругов с разной заливкой.
- Как запрограммировать правильный многоугольник, вписанный в окружность (окружность касается углов многоугольника).
- С помощью метода
circle
выведите квадрат, стороны которого располагаются горизонтально и вертикально (квадрат лежит на одной из своих сторон). - Выполните заливку дуги. Такая фигура называется сегмент круга. Узнайте, что такое сектор круга. Разработайте программу, которая заставляет черепаху рисовать на холсте сектор.