1、python turtle 快速入門
Python的Turtle庫可以畫圖,搞出許多有趣的可視化東西,是培養女朋友兒童編程興趣的好幫手。
Turtle顧名思義,是一隻小海龜。它根據函數指令的控制,在平面座標系中移動,可以前行、後退、轉彎、瞬移、原地畫點……落筆時,它爬行留下指定顏色和粗細的路徑;無論擡筆還是落筆時都可以圈地填色,畫出有或無邊界的平面圖案。所謂海龜,其實就像機器人手中的畫筆。只不過這個機器人走得非常精確,不需要PID。
##1.1 畫布與畫筆設置
默認原點(0,0)在正中間,畫筆向東(0°方向)移動。
我們知道py文件的第一行一般是:
import numpy as npy
類似地,我們首先輸入
from turtle import *
這樣的好處是沒有必要在每個函數之前都寫xx.了,有種滿篇野函數的感覺。
home()
:將畫筆置於(0,0)點向東狀態
clear()
:清空turtle窗口,不改變畫筆位置
reset()
:清空窗口,回覆畫筆起始位置
hideturtle()
:隱藏畫筆的turtle形狀
showturtle()
:顯示畫筆的turtle形狀,默認狀態是與畫筆同色的箭頭
screensize(canvwidth,canvheight,bg)
:參數分別爲畫布的寬,高,背景顏色。
setup(width,height,startx,starty)
:參數寬和高爲整數時表示像素;爲小數時,表示佔據電腦屏幕的比例,startx和starty表示矩形窗口左上角頂點的位置,如果爲空則窗口位於屏幕中心
pensize(size)
:設置畫筆粗細
seth(degree)
:設置畫筆方向,參數取值0~360 speed(speed):設置畫筆移動速度,參數取值1~10的整數
color(color)和fillcolor(color)
:設置筆觸顏色/填充顏色,參數可以是RGB三元組或字符串。字符串對應色卡如圖:
(直男朋友們注意一下,目測這裏就有至少20種口紅色號)
##1.2 運動命令
fd(d)
:向前移動距離d
bd(d)
:向後移動距離d
right(degree)
:畫筆方向向右轉動degree度
left(degree)
:畫筆方向向左轉動degree度
goto(x,y)
:將畫筆移動到(x,y)位置
stamp()
:繪製當前圖形
undo()
:撤銷上一動作
1.3 畫筆控制
pd()
:畫筆落下,移動時繪製圖形
pu()
:畫筆擡起,移動時不繪製圖形
dot(diameter,color)
:以畫筆位置爲中心繪製一個指定直徑和顏色的圓,不改變畫筆位置
circle(radius,degree)
:繪製度數爲degree的圓弧,規律如下圖,可見半徑和度數均可取正負值:
circle(radius,degree,step)
與上條類似,將這條“圓弧”分段折線化,均勻分成step段。結束時,畫筆方向爲“圓弧”的切線。例如先分5段畫半圓再沿畫筆方向前進:
1.4 插入文字
write函數,三個參數分別爲內容、對齊方式和渲染格式。使用樣例如下,爲了明確align參數的定義方式,繪製圓點指明:
goto(-100,0)
dot(20)
write("EESAST the best!", align="right", font=("華文隸書",20,"bold")) #右端對齊
goto(100,50)
dot(20)
write("I love THUEE!", align="left", font=("Tempus Sans ITC",20,"bold")) #左端對齊
2、畫一隻單身狗吧
1.FACE
從(0,0)開始,用樸素的方法,連接線段和90°圓弧繪製單身狗的臉(直男配色,直觀體驗)
#臉
pd() #落筆
fd(25)
#從起始狀態(0,0)向東前行25像素
circle(100,90)
#畫一個半徑100的1/4圓弧(圖中綠色)
circle(120,90)
#再畫一個半徑120的1/4圓弧(圖中藍色)
fd(10)
#前行10像素(圖中粉色)
circle(120,90)
circle(100,90)
fd(25)
pu() #擡筆
2.EYES
goto(x,y)到達合適的位置,和畫臉一樣繪製眼眶。畫眼球的時候可以dot畫點,也可以按如下方式填充圓形:
# 眼球,剛纔畫完擡過筆了
goto(60,100)
begin_fill() #開始填充
circle(17) #眼球的輪廓
#如果不是閉合曲線,會連接首尾塗色
end_fill() #結束填充
3.FINISH
類似地,通過計算(調參),畫另一隻眼睛,接着畫嘴巴和耳朵,一隻單身狗就畫好啦!
3、送你一顆小心心
閱讀完上面的內容,你應該輕鬆地學會了一個技能,下一步就是用來裝X撩弟撩妹了。送大家一顆調好參數的小心心。還是拼接圓弧,畢竟小編太懶了。
size=90
#這一行可以改,是小心心的大小參數
pu()
goto(0,-100)
#這一行可以改,是小心心的起始位置
pd()
# 如果刪掉這一行不落筆,就是沒有邊框的小心心
begin_fill()
seth(150)
fd(size)
circle(-3.74*size, 45)
circle(-1.43*size, 165)
left(120)
circle(-1.43*size, 165)
circle(-3.74*size, 45)
fd(size)
end_fill()
設置畫筆顏色爲紅色,填充爲粉色,效果就是這樣啦!
鏈接文件:
開頭單身狗的完整代碼
超級精美可愛彩色高仿小豬佩奇社會人代碼