Примеры графика в python

1 февраля 2019 - Администратор

Примеры Python графика  

В этом уроке мы разберём пример работы графического модуля turtle в Python. Подробно разберём, как рисовать окружности в turtle в Питон и закрашенные области.
Пример графической программы на Python, в которой задаётся процедура отображения цветка. В основной программе эта процедура вызывается и на поле отображаются пять цветков разного цвета.
Чтобы импортировать модуль turtle в программу на Питон, используется команда
from turtle import *
Создадим черепашку t с помощью команды
t = Turtle()
Зададим поле размером 800×800 пикселей
t.screen.setup(800, 800)
Создадим процедуру в питон рисование цветка. Начнём задание процедуры flower с аргументами x, y и color с помощью команды def. x, y это положение центра цветка, color это цвет лепестков.
def flower(x, y, color):
Перейдём в процедуру с помощью знака : двоеточия. Все команды, принадлежащие процедуры, должны иметь отступы слева от них. Подробнее в уроке Синтаксис языка Python. Условия в Python.
По умолчанию, черепашка при движении будет отображать свою траекторию. Чтобы избежать этого, используется команда t.up().
t.up()
Создадим цветок с длиной стебля 200 пикселей. Переместим черепашку на 200 пикселей вниз от положения центра цветка.
t.goto(x, y - 200)
Направим черепашку вверх, чтобы стебель был повёрнут вверх.
t.setheading(90)
Перекрасим черепашку в зелёный цвет. Траектория черепашки будет отображаться таким же цветом, что и сама черепашка.
t.color("green")
Сделаем так, чтобы черепашка отображала свою траекторию.
t.down()
Переместим черепашку вперёд, чтобы она нарисовала стебель. Черепашка зелёная, поэтому и нарисованный стебель будет зелёного цвета.
t.fd(200)
Повернём черепашку вправо, чтобы нарисовать центр цветка жёлтым цветом.
t.setheading(0)
Меняем цвет черепашки на жёлтый.
t.color("yellow")
Центр цветка должен быть залит. Заливка фигур выполняется с помощью команды
t.begin_fill()
Для того, чтобы фигура залилась, нужно после её отображения закончить заливку командой
t.end_fill()
Нарисуем целую окружность радиусом 20 пикселей командой t.circle(20, 360) и зальём её жёлтым цветом.
t.begin_fill()
t.circle(20, 360)
t.end_fill()

Нам нужно нарисовать 4 лепестка цветка. Сделаем это с помощью цикла for в программе питон. Лепестки будут отображаться снизу, сверху и с боков жёлтого круга. Сначала нарисуем нижний лепесток, затем по краю жёлтого круга перейдём на 90 градусов вперёд, чтобы переместиться на бок жёлтого круга. Повторим эти действия четыре раза, после чего черепашка вернётся в низ жёлтого круга.
Сначала нужно сменить цвет на выбранный цвет color с помощью команды t.color(color). Затем нужно нарисовать и залить лепесток. Начнём заливку командой t.begin_fill(), рисуем лепесток радиусом 35 пикселей t.circle(-35, 360) и заканчиваем заливку t.end_fill(). Минус перед радиусом лепестка нужен, чтобы черепашка при отображении окружности двигалась не влево, а вправо, если бы этого знака не было, то лепестки загораживали бы центр цветка. Для отображения следующего лепестка нужно переместить черепашку на 90 вперёд относительно жёлтой окружности. Сменим цвет черепашки на жёлтый t.color("yellow"), чтобы на центре цветка не оставалось лишних деталей, и переместим черепашку на 90 градусов вперёд с помощью команды t.circle(20, 90). Радиус центра цветка был равен 20 пикселям, черепашка движется по окружности на 90 градусов далее.
for i in range(4):
    t.color(color)
    t.begin_fill()
    t.circle(-35, 360)
    t.end_fill()
    t.color("yellow")
    t.circle(20, 90)

Мы объявили процедуру отображения цветка. Чтобы черепашка рисовала всё быстро, используем команду
t.speed(0) 
Теперь вызовем процедуру flower(x, y, color) пять раз с различными координатами и цветами.
flower(-250, 250, "red")
flower(200, -200, "blue")
flower(100, 100, "green")
flower(-100, 100, "cyan")
flower(-200, -200, "purple")

В конце любой программы нужно добавить две команды, чтобы Ваша программа не останавливалась и не выдавала ошибку.
t.screen.exitonclick()
t.screen.mainloop()
Полный код примера.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
def flower(x, y, color):
    t.up()
    t.goto(x, y - 200)
    t.setheading(90)
    t.color("green")
    t.down()
    t.fd(200)
    t.setheading(0)
    t.color("yellow")
    t.begin_fill()
    t.circle(20, 360)
    t.end_fill()
    for i in range(4):
        t.color(color)
        t.begin_fill()
        t.circle(-35, 360)
        t.end_fill()
        t.color("yellow")
        t.circle(20, 90)
t.speed(0) 
flower(-250, 250, "red")
flower(200, -200, "blue")
flower(100, 100, "green")
flower(-100, 100, "cyan")
flower(-200, -200, "purple")
t.screen.exitonclick()
t.screen.mainloop()


 

Теперь напишем программу, которая рисует пять цветков на случайных местах в окне для графики разными цветами.
Импортируем все нужные модули. Для задания координат случайным образом мы используем модуль random.
from turtle import *
import random as r

Подготавливаем окно для графики и черепашку.
t = Turtle()
t.screen.setup(800, 800)

Для отображения цветков нам нужно будет задать случайные координаты. Создадим две глобальные переменные a для оси абсцисс и b для оси ординат.
a = 0
b = 0
Создадим массив color со всеми цветами, которые мы будем использовать при отображении цветков.
col = ["red", "blue", "green", "cyan", "purple"]
Зададим случайные значения a и b с помощью процедуры coord(). В ней мы будем использовать глобальные переменные a и b, для этого используется команда global a, где a это название переменной. Случайные значения этих переменных будут задаваться командой r.randint(-200, 200). Значения -200 и 200 выбраны затем, чтобы отображаемые цветки не выходили за пределы окна для графики.
def coord():
    global a
    global b
    a = r.randint(-200, 200)
    b = r.randint(-200, 200)

Пример. Программа Python рисует пять цветков на различных местах на поле. Место отображения цветка задаётся случайным образом
Процедура отображения цветка flower точно такая же, как и в прошлом примере.
Мы вызовем пять процедур отображения цветка flower с помощью цикла for. В теле цикла сначала мы зададим случайные числа a и b с помощью процедуры coord(). После этого мы используем числа a и b как координаты цветка, а цвет лепестков мы будем брать из массива.
for i in range(5):
    coord()
    flower(a, b, col[i])

Полный код примера.
from turtle import *
import random as r
t = Turtle()
t.screen.setup(800, 800)
a = 0
b = 0
col = ["red", "blue", "green", "cyan", "purple"]
def coord():
    global a
    global b
    a = r.randint(-200, 200)
    b = r.randint(-200, 200)
def flower(x, y, color):
    t.up()
    t.goto(x, y - 200)
    t.setheading(90)
    t.color("green")
    t.down()
    t.fd(200)
    t.setheading(0)
    t.color("yellow")
    t.begin_fill()
    t.fillcolor("yellow")
    t.circle(20, 360)
    t.end_fill()
    for i in range(4):
        t.color(color)
        t.begin_fill()
        t.circle(-35, 360)
        t.end_fill()
        t.color("yellow")
        t.circle(20, 90)
t.speed(0)
for i in range(5):
    coord()
    flower(a, b, col[i])
t.screen.exitonclick()
t.screen.mainloop()

Результат работы программы

графическая программа в питон

Вернуться к содержанию

Полезно почитать по теме графика в python
Модуль графика turtle в python

Поделиться: