【python】待君有餘暇,看春賞櫻花,這不得來一場浪漫的櫻花旅~
import turtle
from random import random
from random import randint
def draw_petal(turtle_obj, flower):
# 繪製掉落的花瓣
for i in range(int(flower)):
# 有正有負就可以讓畫筆往二個方向走
x = flower - 4 * flower * random()
# 花瓣整體寬度 (-10, 10)
y = 10 - 20 * random()
# 提筆,向前 y ,左轉 90 ,走 x ,落筆
turtle_obj.penup()
turtle_obj.forward(y)
turtle_obj.left(90)
turtle_obj.forward(x)
turtle_obj.pendown()
# 珊瑚色
turtle_obj.pencolor("lightcoral")
# 畫圓
turtle_obj.circle(1)
# 回到起點
# 提筆,後退 x ,右轉 90, 後退 y ,落筆
turtle_obj.penup()
turtle_obj.backward(x)
turtle_obj.right(90)
turtle_obj.backward(y)
turtle_obj.pendown()
# 畫樹枝部分
def draw_tree(turtle_obj, branch, tree_color):
# 設定一個最小分支長度
min_branch = 4
if branch > min_branch:
if branch < 8:
# 以 0.5 的機率,向左、右分支
if randint(0, 1) == 0:
# 左為白色
turtle_obj.pencolor("snow")
else:
# 右為珊瑚色
turtle_obj.pencolor("lightcoral")
# 枝幹
turtle_obj.pensize(branch / 2)
elif 8 <= branch <= 16:
# 以 0.33 的機率,分為左、中、右分支
if randint(0, 2) == 0:
# 左為白色
turtle_obj.pencolor("snow")
else:
# 中、右為珊瑚色
turtle_obj.pencolor("lightcoral")
# 樹枝
turtle_obj.pensize(branch / 4)
else:
# 褐色
turtle_obj.pencolor(tree_color)
# 細枝
turtle_obj.pensize(branch / 10)
# 最開始的樹幹長度
turtle_obj.forward(branch)
# 隨機度數因子
a = 1.5 * random()
# 順時針旋轉隨機角度( 0 ~ 30 度)
turtle_obj.right(20 * a)
# 隨機長度因子
b = 1.5 * random()
# 往右畫,直到畫不動為止
draw_tree(turtle_obj, branch - 10 * b, tree_color)
# 左轉隨機角度
turtle_obj.left(40 * a)
# 往左畫,跟單網gendan5.com直到畫不動位置
draw_tree(turtle_obj, branch - 10 * b, tree_color)
# 右轉一定角度
turtle_obj.right(20 * a)
# 提筆
turtle_obj.penup()
# 遞迴結束回到起點
turtle_obj.backward(branch)
turtle_obj.pendown()
def get_screen(width, height, color, speed):
# 建立畫幕
screen_obj = turtle.Screen()
# 畫布大小: (width, height) ,顏色: color
screen_obj.screensize(width, height, bg=color)
screen_obj.setup(1.0, 1.0)
# speed 倍加速
screen_obj.tracer(speed)
return screen_obj
def trees(tree_num):
# 顏色
color = ['brown', 'tan', 'black']
for j in range(tree_num):
# 樹幹顏色
tree_color = color[randint(0, len(color) - 1)]
# 畫筆大小
pensize = randint(2, 5)
# 前進畫素
forward = ((-1) ** pensize) * pensize * randint(20, 50)
# 後退畫素
if pensize <= 3:
backward = ((-1) ** pensize) * (5 - pensize) * randint(10, 15)
else:
backward = pensize * randint(45, 50)
# 建立畫筆
turtle_obj = turtle.Turtle()
# 畫筆粗細
turtle_obj.pensize(pensize)
# 提筆,向前 forward ,左轉 90 , backward ,落筆
turtle_obj.penup()
turtle_obj.forward(forward)
turtle_obj.left(90)
turtle_obj.backward(backward)
turtle_obj.pendown()
# 畫筆顏色:褐色
turtle_obj.pencolor(tree_color)
# 枝幹粗細
branch = pensize * 15
# 落花數
flowers = branch
# 第 j 棵樹
draw_tree(turtle_obj, branch, tree_color)
# 花瓣
draw_petal(turtle_obj, flowers)
if __name__ == '__main__':
# 建立畫幕
my_screen_width = 800
my_screen_height = 600
my_screen_color = 'wheat'
my_screen_speed = 5
my_screen_obj = get_screen(my_screen_width, my_screen_height,
my_screen_color, my_screen_speed,)
# 櫻花樹
# 棵數
my_tree_num = 10
trees(my_tree_num)
# 點選關閉畫布
my_screen_obj.exitonclick()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2920917/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一場櫻花雨(Python實現)Python
- Python——畫一棵漂亮的櫻花樹(不同種櫻花+玫瑰+聖誕樹喔)Python
- Python敲出櫻花開放,你不懂這門技術有多神奇!Python
- 櫻花熱水器全國各市售後服務電話官方24小時櫻花維修中心
- 程式設計師的浪漫,武大學生程式碼敲出櫻花開放【附原始碼】程式設計師原始碼
- 使用Python的turtle模組繪製美麗的櫻花樹Python
- 心情不好的時候,用 Python 畫棵櫻花樹送給自己吧Python
- 網易櫻花工作室製作人談3A,善用第一性原理
- 網易櫻花工作室公佈三款在研產品的遊戲型別遊戲型別
- 網易在日本設立“櫻花工作室”,進軍次世代遊戲研發遊戲
- 怪不得這位程式設計師有女朋友,原來是因為這個!程式設計師
- 櫻花空調全國售後服務電話官方24小時維修熱線號碼
- 2020年CTS音視訊開發者大會圓滿落幕 回顧櫻花盛放時
- 看過來,這裡有一份企業資料完整遷移策略
- 關於這場Python 和Scala的較量,你怎麼看?Python
- 這兒有一個資料連線,大家看這兒有哪些問題
- 前端日刊君來也前端
- AI繪畫的離譜操作,這個AI看來是有自己想法的AI
- 2020:從遊戲產業的開春回暖看未來發展遊戲產業
- Python | 一萬多條拼車資料,看春運的遷徙圖Python
- 對面的程式Yuan看過來,看過來,這裡的內容很精彩!
- 小米遊戲筆記本開箱圖賞: 這散熱看著就痛快遊戲筆記
- [小夥伴們]X君正傳——開源君有話說
- Spring 學習,看松哥這一篇萬餘字乾貨就夠了!Spring
- Python操作MongoDB看這一篇就夠了PythonMongoDB
- 小哥哥小姐姐看過來,這裡有個元件庫需要您簽收一下元件
- Python字串的格式化,看這一篇就夠了Python字串
- 你的MacOS待機時耗電嚴重嗎?怎麼解決看這裡Mac
- Python快速入門,看這一篇就夠了!Python
- 讓Python帶你看一場唯美的橫飄雪!Python
- 餘昭輝:做Java開發的這一年Java
- 需要待看或已看文章,做個記錄
- 如何在雲端重塑內容生產?來看這場虛擬人主持的釋出會
- 遊刃有餘,區域市場的遊戲推廣與變現遊戲
- Python 中的這些坑,早看早避免Python
- 從TapTap年度遊戲大賞,看TapTap的出圈之路APT遊戲
- 一起來看MyBatis(一)MyBatis
- 使用者之聲 | 冬去春來,靜待花開 ——淺談GBase 8a學習感悟