用Python?Turtle畫棵櫻花樹送給自己
最近發(fā)生了很多事情,工作不開心,愛情無果而終,身邊的小伙伴陸陸續(xù)續(xù)離職。雖然都不是會一下子擊垮自己的事情,但是積攢起來,還是會有突然感到疲憊和倦怠的時候,有一種不知道下一步要走向哪里的無力感。
在這個城市留下了很多的回憶,但是身邊的人一個個離開,走到現(xiàn)在,似乎沒有太多留戀的了,也沒想好未來要去哪里。自己是一個始終需要新鮮感的人,在這里停留了太久,大概到了該說再見的時候了吧。
那么,用一個不熟悉的語言,畫棵櫻花樹送給自己吧,代碼也可以很浪漫不是嗎。520剛剛過了,沒有愛情,自己也要好好愛自己才對。
一. 繪制步驟
1. 環(huán)境安裝
可以參考之前的博客:
2. 圖片美化
之前沒怎么用過 Python,就對別人的代碼進行分析和效果優(yōu)化好啦,順便學習一下。
這個是原來的效果圖,有點灰蒙蒙的,微微改動,讓它明媚一點。

修改之后的代碼:
from turtle import *
from random import *
from math import *
def tree(n,l):
pd()#下筆
#陰影效果
t = cos(radians(heading()+45))/8+0.25
pencolor(t,t,t)
pensize(n/3)
forward(l)#畫樹枝
if n>0:
b = random()*15+10 #右分支偏轉角度
c = random()*15+10 #左分支偏轉角度
d = l*(random()*0.25+0.7) #下一個分支的長度
#右轉一定角度,畫右分支
right(b)
tree(n-1,d)
#左轉一定角度,畫左分支
left(b+c)
tree(n-1,d)
#轉回來
right(c)
else:
#畫葉子
right(90)
n=cos(radians(heading()-45))/4+0.5
ran=random()
#這里相比于原來隨機添加了填充的圓圈,讓櫻花葉子看起來更多一點
if(ran>0.7):
begin_fill()
circle(3)
fillcolor('pink')
#把原來隨機生成的葉子換成了統(tǒng)一的粉色
pencolor("pink")
circle(3)
if(ran>0.7):
end_fill()
left(90)
#添加0.3倍的飄落葉子
if(random()>0.7):
pu()
#飄落
t = heading()
an = -40 +random()*40
setheading(an)
dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
forward(dis)
setheading(t)
#畫葉子
pd()
right(90)
n = cos(radians(heading()-45))/4+0.5
pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)
circle(2)
left(90)
pu()
#返回
t=heading()
setheading(an)
backward(dis)
setheading(t)
pu()
backward(l)#退回
bgcolor(0.956,0.9255,0.9882)#設置背景色(把灰色換成淡紫色)
ht()#隱藏turtle
speed(0)#速度 1-10漸進,0 最快
tracer(0,0)
pu()#抬筆
backward(50)
left(90)#左轉90度
pu()#抬筆
backward(300)#后退300
tree(12,100)#遞歸7層
done()之后的效果溫暖一點,喜歡這種更有溫度的色調:

二. 技術學習
1. turtle 簡介
櫻花樹的繪制效果是通過 Python 中的 turtle 來實現(xiàn)的,Python 的強大之處在于有許多很強大的庫,turtle就是其中之一,是 Python 自帶的一個庫。
2. turtle 繪圖的基礎知識
turtle庫繪制原理:有一只海龜在窗體正中心,在畫布上游走,走過的軌跡形成了繪制的圖形,海龜由程序控制,可以自由改變顏色、方向寬度等。
(1) . turtle 繪圖窗體
setup用來設置窗體大小,后兩個參數(shù)為非必選參數(shù);
turtle.setup(width,height,startx,starty)
(2) . turtle 的坐標體系
畫布上,默認有一個坐標原點為畫布中心的坐標軸,坐標原點上有一只面朝x軸正方向的小烏龜。
這里我們描述小烏龜時使用了兩個詞語:坐標原點(位置),面朝x軸正方向(方向), turtle 繪圖中,就是使用位置方向描述小烏龜(畫筆)的狀態(tài)的。

(3) . turtle 畫筆屬性

(4) . turtle 繪圖命令
運動命令

控制命令

全局控制命令

雖然沒有在原來的基礎上改動太多的代碼,只是簡單的給櫻花樹換了個風格,但是其實也做了很多的嘗試和調整,也學到了怎么使用 turtle 。
本篇博客參考了以下博客的代碼:使用python圖形模塊turtle庫繪制櫻花、玫瑰、圣誕樹代碼實例
到此這篇關于用Python Turtle畫棵櫻花樹送給自己的文章就介紹到這了,更多相關Python Turtle 櫻花樹內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python 如何用 Hypothesis 來自動化單元測試
這篇文章主要介紹了python 如何用 Hypothesis 來自動化單元測試,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-03-03
Python處理MySQL與SQLite數(shù)據庫詳解
在數(shù)據處理和存儲方面,數(shù)據庫扮演著至關重要的角色,Python提供了多種與數(shù)據庫交互的方式,本文主要介紹了如何對MySQL與SQLite數(shù)據庫進行增刪改查操作,需要的可以了解下2025-02-02
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
django+uwsgi的部署實在是太蛋疼了.網上已有的教程似乎有新版本的兼容問題。最后跑到uwsgi官網上找的教程終于跑通了.. 不過官網的教程似乎有引導教學性質,部署的時候就顯得很繞彎路,在這里記錄下來精簡內容2014-11-11
提高Python生產力的五個Jupyter notebook插件
Jupyter Notebook 因其可用性和實用性而成為數(shù)據分析和機器學習模型領域最流行的 IDE,它也是很多數(shù)據初學者的首選 IDE。它最具特色的是,擁有豐富的插件、擴展數(shù)據處理能力和提升工作效率2021-11-11

