聖誕節的python豪華版聖誕樹,包括雪花彩燈文字背景
import turtle as t
from turtle import *
import random as r
import time
n = 100.0
t.delay(0)
speed("fastest")
screensize(bg='black')
def bgpic(self, picname=None):
if picname is None:
return self._bgpicname
if picname not in self._bgpics:
self._bgpics[picname] = self._image(picname)
self._setbgpic(self._bgpic, self._bgpics[picname])
self._bgpicname = picname
if __name__ == '__main__':
myWin = t.Screen()
t.setup(width=600, height=750, startx=0, starty=0)
t.bgpic(' 圖片地址 ') # 這裡設定本地圖片地址,建議是 gif 圖片
left(90)
forward(3*n)
color("orange", "yellow")
begin_fill()
left(126)
for i in range(5):
forward(n/5)
right(144)
forward(n/5)
left(72)
end_fill()
right(126)
def drawlight():
if r.randint(0, 50) == 0:# 如果覺得彩燈太多,可以把取值範圍加大一些,對應的燈就會少一些
color('tomato')
begin_fill()
circle(6)
end_fill()
elif r.randint(0,50) == 1:
color('orange')
begin_fill()
circle(3)
end_fill()
elif r.randint(0,50) == 2:
color('pink')
begin_fill()
circle(2)
end_fill()
else:
pensize(5)
color('green')
pensize(5)
color("dark green")
backward(n*5)
def tree(d, s):
if d <= 0: return
forward(s)
tree(d-1, s*.8)
right(120)
tree(d-3, s*.5)
drawlight()# 同時畫小彩燈
right(120)
tree(d-3, s*.5)
right(120)
backward(s)
tree(15, n)
backward(n/2)
for i in range(200):
a = 200 - 400 * r.random()
b = 10 - 20 * r.random()
up()
forward(b)
left(90)
forward(a)
down()
if r.randint(0, 1) == 0:
pensize(1)
color('tomato')
else:
pensize(1)
color('wheat')
circle(2)
up()
backward(a)
right(90)
backward(b)
t.color("dark red","red")
t.write("Merry Christmas",align ="center",font=("Comic Sans MS",30,"bold"))# 寫字
penup()
left(180)
backward(50)
pendown()
t.write("To Mr.Chen",align ="center",font=("Comic Sans MS",30,"bold"))# 寫字
def drawsnow():
t.ht() # 隱藏筆頭, ht=hideturtle
t.pensize(2) # 定義筆頭大小
for i in range(200): # 畫多少雪花
t.pencolor("white") # 定義畫筆顏色為白色,其實就是雪花為白色
t.pu() # 提筆,外匯跟單gendan5.com pu=penup
t.setx(r.randint(-350,350)) # 定義 x 座標,隨機從 -350 到 350 之間選擇
t.sety(r.randint(-100,350)) # 定義 y 座標,注意雪花一般在地上不會落下,所以定義是從 1 開始
t.pd() # 落筆, pd=pendown
dens = 6 # 雪花瓣數設為 6
snowsize = r.randint(1,10) # 定義雪花大小
for j in range(dens): # 就是 6 ,那就是畫 5 次,也就是一個雪花五角星
#t.forward(int(snowsize)) #int ()取整數
t.fd(int(snowsize))
t.backward(int(snowsize))
#t.bd(int(snowsize)) # 注意沒有 bd=backward ,但有 fd=forward ,小 bug
t.right(int(360/dens)) # 轉動角度
drawsnow()# 畫雪花
t.done() # 完成 , 否則會直接關閉
# time.sleep(60)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2929896/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何使用ChatGPT來自動化Python任務
- Python函式用法和底層分析
- 不規則圖形背景排版高階技巧 -- 酷炫的六邊形網格背景圖
- CSS Flex 佈局的引入背景
- 世界盃太精彩了,帶大家用Python做個足球遊戲,邊玩遊戲邊看比賽
- Python AI小專案打包通關:Pyinstaller和Wix都用上了
- 互動式儀表板!Python輕鬆完成!⛵
- CSS 如何根據背景色自動切換黑白文字?
- 資料庫課程設計—超市零售資訊管理系統(Python實現)
- Python進行資料採集時,如何避免IP被封?
- 盤點爬蟲語言為何大多選擇Python而不是Java
- Generator(生成器),入門初基,Coroutine(原生協程),登峰造極,Python3.10併發非同步程式設計async底層實現
- 數值計算:前向和反向自動微分(Python實現)
- 【c#】從外部複製文字、圖片到我的軟體中的解決方案(支援ppt,qq等)
- 為什麼運維要學Python?它們之間有什麼聯絡?
- Python爬蟲抓取資料,為什麼要使用代理IP?
- opencv-python學習之旅
- 【爬蟲+資料分析+資料視覺化】python資料分析全流程《2021胡潤百富榜》榜單資料!