【16】python使用turtle庫繪畫
畫蛇
import turtle
for i in range(len):
turtle.circle(rad, angle) # 畫圓 rad:圓半徑 angle:圓弧度
turtle.circle(-rad, angle)
turtle.circle(rad, angle/2)
turtle.fd(rad) # 表示直線爬行,forward, 引數表示爬行的距離
turtle.circle(neckrad+1, 180)
turtle.fd(rad*2/3)
def main():
turtle.setup(1300, 800, 0, 0) # 甚至視窗寬+高+起始x/y
pythonsize = 100
turtle.pensize(pythonsize) # 設定筆的寬度
turtle.pencolor("red") # 設定筆的顏色
turtle.seth(-40) # 設定筆的起始角度
drawSnake(40, 80, 5, pythonsize/2)
main()
""""
python 的呼叫方式
1:import 庫名
呼叫的時:庫.函式名
優點:可以更改函式中函式的名字
2, from 庫名 import 函式名
"""
畫五角星
順序結構
import turtle
turtle.setup(2000, 2000, 0, 0)
turtle.pensize(20)
turtle.pencolor("black")
turtle.seth(0)
turtle.fd(400)
turtle.seth(-144)
turtle.fd(400)
turtle.seth(-144-144)
turtle.fd(400)
turtle.seth(-144 - 144-144)
turtle.fd(400)
turtle.seth(-144 - 144-144-144)
turtle.fd(400)
迴圈結構
import turtle
turtle.setup(2000, 2000, 0, 0)
turtle.pensize(20)
turtle.pencolor("black")
turtle.seth(0)
length = 400
angle = 0
for i in range(5):
turtle.fd(length)
angle = angle - 144
turtle.seth(angle)
迴圈遞迴函式
import turtle
def drawFivePiontedStar(length, angle):
"""
Draw five_pointed_star by turtle library
Initial screen ;width+height+initial position
Initial pen: font+color
Drawing line by recursive_function
:param length: Initial five_pointed_star length
:param angle: Initial position
:return: None
"""
def drawline(length, angle):
turtle.seth(angle)
turtle.fd(length)
turtle.setup(2000, 2000, 0, 0)
turtle.pensize(20)
turtle.pencolor("black")
for i in range(5):
drawline(length, angle)
angle = angle-144
if __name__ == "__main__":
drawFivePiontedStar(400, 0)
畫樹
import turtle
def branch(length, level):
"""
使用遞迴函式實現畫樹
以沒有樹杈為例
起始角度為90°
向左轉換角45°,看有沒有樹杈(level)
如果沒有,向右轉換角90°(-45),看有沒有樹杈
如果沒有,向右轉換45°(0),返回原路
"""
if level <= 0:
return
turtle.forward(length)
turtle.left(45)
branch(0.6 * length, level - 1) # 90
turtle.right(90)
branch(0.6 * length, level - 1)
turtle.left(45)
turtle.backward(length)
return
if __name__ == "__main__":
turtle.left(90)
branch(100, 3)