Методы circle и dot модуля turtle языка Python. Круги, дуги, правильные многоугольники и точки

Словарь урока

из модуля turtle:
  • teleport ‒ телепорт
  • forward ‒ вперед
  • backward ‒ назад
  • setheading ‒ установить (set) направление (heading)
  • write ‒ писать, записывать
  • align ‒ выравнивать
  • stamp ‒ штамп, печать, отпечаток
  • pensize ‒ размер (size) пера (pen)
  • pencolor ‒ цвет (color) пера (pen)
  • fillcolor ‒ цвет (color) заливки (filling)
  • begin_fill ‒ начать (begin) заполнение (fill)
  • end_fill ‒ конец (end) заполнения (fill)
  • circle ‒ круг, окружность
  • dot ‒ точка
  • steps ‒ шаги (step ‒ шаг)
  • extent ‒ протяженность

В модуле 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, точка выводится цветом пера.

Задания для самостоятельной работы

  1. Напишите код вывода на холсте двух кругов с разной заливкой.
  2. Как запрограммировать правильный многоугольник, вписанный в окружность (окружность касается углов многоугольника).
  3. С помощью метода circle выведите квадрат, стороны которого располагаются горизонтально и вертикально (квадрат лежит на одной из своих сторон).
  4. Выполните заливку дуги. Такая фигура называется сегмент круга. Узнайте, что такое сектор круга. Разработайте программу, которая заставляет черепаху рисовать на холсте сектор.

Turtle. Программирование на Python для школьников




Все разделы сайта