Найти в Дзене
Программы от меня

Черепашья графика python часть 2.

Оглавление

Здравствуйте-здравствуйте-здравствуйте, дорогие друзья. Сегодня мы продолжим работу с черепашкой на python, начало которой здесь:
https://dzen.ru/a/ZgJ7HJhh928InM-f?share_to=link

И начнем мы с самого начала. С начала координат.



Перенос пера, координаты черепашки и точка старта.

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

Есть такое и у turtle:
Поднять карандаш с холста:

turtle.penup()

Опустить карандаш на холст:

turtle.pendown()

Нарисуем два квадрата на холсте:

-2

После прорисовки первого квадрата выполняем команду turtle.penup(), после чего наша черепашка сдвигается вперед командой turtle.forward(150) от левого нижнего угла первого квадрата. 100px - это нижняя сторона квадрата плюс еще 50px наша черепашка прошла вперед вправо, не оставляя следа. Далее мы выполняем команду turtle.pendown() (ставим черепашку на холст, чтобы рисовала дальше) и рисуем второй квадрат (незакрашенный) уже с новой точки.

Но перемещать черепашку командами penup()...pendown() можно не только вперед-назад относительно нарисованной фигуры, но и в произвольную точку с использованием... системы декартовых координат. Центр, откуда у нас началось рисование, будет иметь координаты (0,0)

-3

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

Давайте теперь перейдем в пример с окружностями и нарисуем два кружка, переместив черепашку в произвольную точку на оси координат (пусть это будет точка (200, 300) ):

-4

Вот. Как мы видим, после рисования первого круга черепашка была поднята с холста командой penup(), перемещена на точку (200,300), опущена на холст командой pendown(). После этого перемещения она нарисовала другой круг красного цвета с оранжевой заливкой меньшего диаметра. Всё отработало отлично.

А давайте попробуем goto() без penup()...pendown(). Закомментируем эти команды.

-5

Как видим, в этом случае между двумя кружочками мы видим линию зеленого цвета (по цвету бордюрчика первого круга). То есть, если не поднять черепашку над холстом, а просто задать команду goto(x,y), она просто двинется к новой точке по кратчайшей линии, и с новой точки продолжит выполнение алгоритма. На этом поставим жирную точку.

Жирная точка

Нет, нет, не пугайтесь, мы не прекращаем наше повествование и не заканчиваем исследование возможностей нашей черепашки. Раскомментируем наши penup()...pendown() и перед ними добавим следующую команду:

turtle.dot(20)

-6

Мы получаем два шарика, как в примере ранее, за одним исключением: большая зеленая точка в нижней части синего кружочка. Это результат выполнения команды turtle.dot(20), 20 - размер точки в пикселях.


Толщина линии


Кстати, я назвал нижний большой кружочек синим. А синий ли он? В прошлой публикацией мы задавались вопросом, как увидеть зеленый бордюрчик этого шарика. Давайте займемся этим сейчас. Толщина линии задается командой

turtle.pensize(7)

-7

Как видим, теперь зеленый бордюр первого кружка очень хорошо виден. Так же заметно толще (7 пикселей) стал бордюр второго кружка (мы не поменяли pensize() при его рисовании, поэтому он остался таким же).

Продолжение следует... с полезными параметрами


Да-да, я уже готовлю третью часть, где наша черепашка будет рисовать сложные фигуры (или комбо из простых фигур, от которых рисунки сделаются интереснее).



turtle.setup(800, 400) - устанавливают размер окна 800х400.

-8

Как видим, это только размер окна, но не размер рабочей области. Желтый круг с красным бордюром нарисован за пределами видимой области. Его можно увидеть, растянув получившееся окошко путем растягивания его краёв мышкой

-9

  • turtle.clear() очищает холст от нарисованного
  • turtle.reset() очищает холст и возвращает курсор в начало координат

turtle.speed(x) - меняет скорость движения черепашки. Скриншот на последние три команды я сделать не могу, это можно увидеть, запустив программу на выполнение. Так же при запуске можно поиграть с параметром х, увеличивая или уменьшая его, и соответственно меняя скорость. Я поставил turtle.speed(12), и кружочки появились практически мгновенно, без анимации.

turtle.hideturtle() скрывает черепашку (или стрелку, курсор).

turtle.seth(x) устанавливает направление в градусах. 0 – горизонтально направо (на восток), 90 – вверх (на север) и так далее.

turtle.setpos(x, y) устанавливает черепашку (курсор) в позицию с координатами (x, y). Аналогично комбо penup()...goto()...pendown().

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


#python #turtle #черепашка #курсор #точка

Наука
7 млн интересуются