среда, 3 июля 2013 г.

Рисуем простую графику с помощью Python 3(turtle)

Добрый день.

Начал изучать Python и увидел замечательную встроенную библиотеку turtle (черепашка), в которой можно рисовать простые рисунки, работа с ней очень похожа на то, как можно рисовать в Paint.

Хочу привести пару примеров, того что можно нарисовать, с небольшим пояснением.

Были использованы такие методы как:
turtle.color(color) - Задаем цвет курсора color ;
turtle.penup() - Поднимаем курсор, что бы при перемещении курсора не происходило рисование линий;
turtle.pendown() - Опускаем курсор, что бы при перемещении курсора происходило рисование линий;
turtle.goto(x, y) - Перейти в точку с координатами x и y;
turtle.circle(radius) - Нарисовать круг с радиусом = radius;
turtle.right(degrees) - Повернуть курсор на право на degrees градусов;
turtle.left(degrees) - Повернуть курсор на лево на degrees градусов;
turtle.forward(length) - Нарисовать линий длиной = length;
turtle.done() - Этим методом должны завершаться все программы использующие turtle.

Для начала нарисуем символ олимпиады, вот что мы получим в конце:
Алгоритм рисования довольно прост:

  1.  Задаем цвет, которым будем рисовать;
  2.  Поднимаем черепашку (курсор), что бы во время перехода не рисовались линии;
  3.  Переходим на интересующие нас координаты x и y;
  4.  Опускаем черепашку (курсор);
  5.  Рисуем круг с радиусом 45.


И так выполняем для каждого круга. Вот небольшой исходный код программы:
import turtle # Импортируем библиотеку turtle

turtle.color("blue") # Устанавливаем цвет черепашки
turtle.penup() # Поднимаем курсор
turtle.goto(-110, -25) # Переходим по нужным координатам
turtle.pendown() # Опускаем курсор
turtle.circle(45) # Рисуем круг с радиусом 45

turtle.color("black")
turtle.penup()
turtle.goto(0, -25)
turtle.pendown()
turtle.circle(45)

turtle.color("red")
turtle.penup()
turtle.goto(110, -25)
turtle.pendown()
turtle.circle(45)

turtle.color("yellow")
turtle.penup()
turtle.goto(-55, -75)
turtle.pendown()
turtle.circle(45)

turtle.color("green")
turtle.penup()
turtle.goto(55, -75)
turtle.pendown()
turtle.circle(45)

turtle.color("black")
turtle.penup()
turtle.goto(0, 80)
turtle.pendown()
turtle.write("Olympic Symbol") # Вместо еще одного круга выводим надпись "Olympic Symbol"

turtle.done()


Теперь нарисуем домик (я очень плохо рисую, кстати :) ):
Тут я использовал еще несколько новых функций:
import turtle

turtle.penup()
turtle.goto(35, 35)
turtle.right(90) # Повернуть курсор на 90 градусов вправо
turtle.pendown()
turtle.forward(70) # Пройти вперед расстояние 70, если курсор опущен, то будет нарисована линия по пути слоедования

turtle.right(90)
turtle.forward(70)

turtle.right(90)
turtle.forward(70)

turtle.right(90)
turtle.forward(70)

turtle.penup()
turtle.goto(45, 35)
turtle.right(225)
turtle.pendown()
turtle.forward(70)

turtle.left(90)
turtle.forward(70)

turtle.left(135) # Повернуть курсор влево на 135 градусов
turtle.forward(100)

turtle.done()


Ссылки:
Обожаю Python за его мега крутую документацию, вот по turtle: тыц

1 комментарий:

  1. Отличная статья!
    Все коды запускаются без проблем. Часто бывает так, что автор приводит пример кода, но при попытке его реализации постоянно происходят ошибки, здесь же все четко. Сейчас буду пытаться из этого всего сделать Hello World в графике.

    ОтветитьУдалить