遇到喜歡的人,每天看到的東西都格外的不一樣,這不七夕前一天,日常逛yao~哎不,逛B站,碰巧看到某up主投的七夕稿,竟是用Python的Turtle庫畫的一顆櫻花樹,
支持up主一下,上鏈接:
用Turtle庫畫一樹浪漫的櫻花吧~
再上效果圖:

乍一看覺得非常有新意,而且還是動態生成的、再加上動人的背景樂《I'm Yours》,一下就吸引住了缺乏浪漫主義的我,因此決定復現一下,稍加改動送給那個她,
使用PyCharm撰寫代碼,代碼不算復雜,想了解代碼細節的可以參考官方的Turtle庫.
專案目錄:

一個.py檔案和一個.mp3背景音樂檔案資源即可,文末有網盤資源,
原始碼如下:
import turtle as T
import random
import time
import pygame
# 獲取背景音樂檔案
file = r'Im_Yours.mp3'
pygame.mixer.init()
track = pygame.mixer.music.load(file)
pygame.mixer.music.play() # 播放
# 畫櫻花的軀干(60,t)
def Tree(branch, t):
time.sleep(0.01)
if branch > 3:
if 8 <= branch <= 12:
if random.randint(0, 2) == 0:
t.color('snow') # 白
else:
t.color('lightcoral') # 淡珊瑚色
t.pensize(branch / 3)
elif branch < 8:
if random.randint(0, 1) == 0:
t.color('snow')
else:
t.color('lightcoral') # 淡珊瑚色
t.pensize(branch / 2)
else:
t.color('sienna') # 赭(zhě)色
t.pensize(branch / 10) # 6
t.forward(branch)
a = 1.5 * random.random()
t.right(20 * a)
b = 1.5 * random.random()
Tree(branch - 10 * b, t)
t.left(40 * a)
Tree(branch - 10 * b, t)
t.right(20 * a)
t.up()
t.backward(branch)
t.down()
# 掉落的花瓣
def Petal(m, t):
for i in range(m):
a = 200 - 400 * random.random()
b = 10 - 20 * random.random()
t.up()
t.forward(b)
t.left(90)
t.forward(a)
t.down()
t.color('lightcoral') # 淡珊瑚色
t.circle(1)
t.up()
t.backward(a)
t.right(90)
t.backward(b)
# 繪圖區域
t = T.Turtle()
# 畫布大小
w = T.Screen()
w.setup(width=800, height=700, startx=400, starty=50)
t.hideturtle() # 隱藏畫筆
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat') # wheat小麥
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')
# 輸出文字
printer = T.Turtle()
printer.hideturtle()
printer.penup()
printer.back(200)
printer.write("鄒同學,七夕快樂!\n\n", align="right", font=("楷體", 14, "bold"))
printer.write(" from 董同學", align="center", font=("楷體", 12, "normal"))
# 畫櫻花的軀干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()
另外這個櫻花樹是隨機生成的,追求靈動感,有的時候特別鬼畜,想要一個比較好看的樹型的話,不妨多運行幾次,
最后貼出筆者制作完成后的視頻效果:
Python程式員的小浪漫一一櫻花樹
網盤資源
鏈接:https://pan.baidu.com/s/1Kj6yARqII3ox4q5DsYBXaw
提取碼:hipd
歡迎點贊評論,指出不足,筆者由衷感謝!~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293891.html
標籤:其他
