2023-02-14 15:30:04
Привет!
Готов поздравлять любимых с Днём Святого Валентина?
На связи Андрей Ермолинский — руководитель направления "Информатика" в Geekz c крутой анимированной валентинкой в Python, которая порадует тебя и близких!
Для того, чтобы нарисовать открытку, очевидно нужна библиотека, работающая с графикой или графический интерфейс. Воспользуемся уже входящим в стандарт модулем turtle .
Графическая библиотека turtle предназначена для рисования геометрических фигур и анимаций с использованием стандартных базовых изображений: квадрат, круг, черепашка, стрелка.
Библиотека не только помогает школьникам учиться программировать и отрисовывать графические примитивы, но и используется при решении нового задания №6 - задание про исполнитель Черепаха!
Итак, приступаем к делу!
Принцип этой библиотеки построение на метафоре Черепахи, воображаемого роботоподобного устройства, которое перемещается по экрану или бумаге и поворачивается в заданных направлениях, при этом оставляя (или, по выбору, не оставляя) за собой нарисованный след заданного цвета и ширины. Для воспроизведения музыки необходимо будет установить и подключить библиотеку PyGame.
#подключаем необходимые библиотеки - для косинусов и синусов,
#pygame для музыки и сам модуль turtle для рисования
import math
from pygame import mixer
import turtle
#подключаем инструмент mixer для воспроизведения музыки
mixer.init()
#не забудь разместить в папке проекта свою любимую песню :)
mixer.music.load("track.mp3")
mixer.music.play()
#предоставляем дело математике, эти функции помогут
# в симметричной отрисовки линий
def xt(t):
return 16 * math.sin(t) ** 3
def yt(t):
return 13 * math.cos(t) - 5 * \
math.cos(2 * t) - 2 * \
math.cos(3 * t) - \
math.cos(4 * t)
t = turtle.Turtle() #создаём холст для рисования
t.speed(10) #задержка при отрисовке (чем больше значение, тем быстрее линии будут отрисовываться пером)
turtle.colormode(255)#цвета
turtle.Screen().bgcolor(0, 0, 0)#создаем окно черного цвета
#отрисовка пером различных линий и цветов
for i in range(2550):
t.goto((xt(i) * 20, yt(i) * 20))
t.pencolor((255 - i) % 255, i % 255, 255)#цвет меняется здесь
t.goto(0, 0)
t.hideturtle()#делает черепашку невидимой
turtle.update()#обновление холста экрана
turtle.mainloop()#основной цикл
1.2K views12:30