turtle是一個簡單的繪圖工具,它提供了一個海龜,你可以把它理解為一個機器人,只聽得懂有限的指令,下面這篇文章主要給大家介紹了關于Python海龜turtle基礎知識大全以及畫圖集合的相關資料,需要的朋友可以參考下文章源自四五設計網-http://www.133122.cn/35567.html
Turtle 庫是 Python 內置的圖形化模塊,屬于標準庫之一,位于 Python 安裝目錄的 lib 文件夾下,常用函數有以下幾種:文章源自四五設計網-http://www.133122.cn/35567.html
一.Turtle繪圖的基礎知識文章源自四五設計網-http://www.133122.cn/35567.html
畫布是turtle用于繪圖區域,我們可以設置它的大小和初始位置。文章源自四五設計網-http://www.133122.cn/35567.html
1.設置畫布大小文章源自四五設計網-http://www.133122.cn/35567.html
turtle.screensize(canvwidth=None, canvheight=None, bg=None),參數分別對應畫布的寬(單位像素), 高, 背景顏色。文章源自四五設計網-http://www.133122.cn/35567.html
turtle.screensize(1000,800, "blue") turtle.screensize() #返回默認大小(500, 400) turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
width, height: 輸入寬和高為整數時, 表示像素; 為小數時, 表示占據電腦屏幕的比例,(startx, starty): 這一坐標表示矩形窗口左上角頂點的位置, 如果為空,則窗口位于屏幕中心。文章源自四五設計網-http://www.133122.cn/35567.html
2.畫筆的狀態文章源自四五設計網-http://www.133122.cn/35567.html
在畫布上,默認有一個坐標原點為畫布中心的坐標軸,坐標原點上有一只面朝x軸正方向小烏龜。這里我們描述小烏龜時使用了兩個詞語:坐標原點(位置),面朝x軸正方向(方向), turtle繪圖中,就是使用位置方向描述小烏龜(畫筆)的狀態。文章源自四五設計網-http://www.133122.cn/35567.html
turtle.pensize() # 設置畫筆的寬度; turtle.pencolor()# 沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,可以是字符串如"green", "red",也可以是RGB 3元組。 turtle.speed(speed)#設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。
3.使用turtle繪圖主要分為3種命令代碼,分別為運動命令、畫筆控制命令和全局控制命令。文章源自四五設計網-http://www.133122.cn/35567.html
畫筆運動命令代碼
turtle.forward(distance)—向當前畫筆方向移動distance像素長度
turtle.backward(distance)—向當前畫筆相反方向移動distance像素長度
turtle.right(degree)—順時針移動degree° turtle.left(degree)—逆時針移動degree°
turtle.pendown()—移動時繪制圖形,缺省時也為繪制 turtle.goto(x,y)—將畫筆移動到坐標為x,y的位置
turtle.penup()—提起筆移動,不繪制圖形,用于另起一個地方繪制
turtle.circle()—畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓 setx( )—將當前x軸移動到指定位置
sety( )—將當前y軸移動到指定位置 setheading(angle)—設置當前朝向為angle角度
home()—設置當前畫筆位置為原點,朝向東 dot?—繪制一個指定直徑和顏色的圓點
畫筆控制命令代碼
turtle.fillcolor(colorstring)—繪制圖形的填充顏色 turtle.color(color1,color2)—同時設置pencolor=color1, fillcolor=color2
turtle.filling()—返回當前是否在填充狀態 turtle.begin_fill()—準備開始填充圖形
turtle.end_fill()—填充完成 turtle.hideturtle()—隱藏畫筆的turtle形狀
turtle.showturtle()—顯示畫筆的turtle形狀
全局控制命令代碼
turtle.clear()—清空turtle窗口,但是turtle的位置和狀態不會改變
turtle.reset()—清空窗口,重置turtle狀態為起始狀態 turtle.undo()—撤銷上一個turtle動作
turtle.isvisible()—返回當前turtle是否可見 stamp()—復制當前圖形
turtle.write(s[,font=(“fontname”,font_size,“font_type”)])—文本,s為文本內容,font是字體的參數,分別為字體名稱,大小和類型;font為可選項,font參數也是可選項
繪圖命令
操縱海龜繪圖有很多命令,可以劃分為三種:畫筆運動命令、畫筆控制命令、全局控制命令
1、畫筆運動命令
| 命令 | 說明 |
|---|---|
| turtle.forward(distance) | 向當前畫筆方向移動distance像素長度 |
| turtle.backward(distance) | 向當前畫筆相反方向移動distance像素長度 |
| turtle.right(degree) | 順時針移動degree° |
| turtle.left(degree) | 逆時針移動degree° |
| turtle.pendown() | 移動時繪制圖形,缺少參數時也為繪制 |
| turtle.goto(x,y) | 將畫筆移動到坐標為(x,y)的位置 |
| turtle.penuo() | 提起畫筆,不繪制圖形,用于另起一個地方繪制 |
| turtle.circle() | 畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓 |
| setx() | 將當前x軸移動到指定位置 |
| sety() | 將當前y軸移動到指定位置 |
| setheading(angle) | 設置當前朝向為angle的角度 |
| home() | 設置當前畫筆位置為原點,朝向向東 ° |
2、畫筆控制命令
| 命令 | 說明 |
|---|---|
| turtle.fillcolor(colorstring) | 繪制圖形填充顏色 |
| turtle.color(color1, color2) | 同時設置 pencolor = color1,fillcolor = color2 |
| turtle.filling() | 返回當前是否在填充狀態 |
| turtle.begin_fill() | 準備開始填充圖形 |
| turtle.end_fill() | 填充完成 |
| turtle.hideturtle() | 隱藏畫筆的turtle形狀 |
| turtle.showturtle() | 顯示畫筆的turtle形狀 |
3、全局控制命令
| 命令 | 說明 |
|---|---|
| turtle.clear() | 清空turtle窗口,但是turtle的位置和狀態不會發生變化 |
| turtle.reset() | 清空窗口,重置turtle狀態為起始狀態 |
| turtle.undo() | 撤銷上一個turtle動作 |
| turtle.isvisible() | 返回當前turtle是否可見 |
| stamp() | 復制當前圖形 |
| turtle.write(s[,font = ("font_name",font_size,"font_type")]) | 寫文本,s為文本內容,font是字體參數,分別是字體名稱,字體大小和類型,font和font的參數都是可選選項 |
熟悉turtle坐標體系
# 導入 turtle 模塊 import turtle as t t.goto(100,100) t.goto(100,-100) t.goto(-100,-100) t.goto(-100,100) t.goto(0,0) t.done()

畫筆自動繪圖
# 用for循環初步實現畫筆自動繪圖
import turtle as t
for i in range(20):
# 畫筆向前移動
t.forward(100 + 10 * i)
# 順時針旋轉120°
t.right(120)
t.done()
顯示畫筆運動印記
# 用for循環初步實現畫筆自動繪圖并顯示其印記
import turtle as t
for i in range(20):
# 畫筆向前移動
t.forward(100 + 10 * i)
#t.shape("turtle") # 海龜
#t.shape("circle") # 圓
t.shape("square") # 正方形
# 打印turtle印記
t.stamp()
# 順時針旋轉60°
t.right(60)
t.done()
二.具體實例
0.櫻花樹
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' )
# 把原來隨機生成的葉子換成了統一的粉色
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.彩色螺旋線
from turtle import *
import turtle
t = Turtle()
t.pensize(2)
turtle.bgcolor("black")
colors = ["red", "yellow", 'purple', 'blue']
t._tracer(False)
for x in range(400):
for y in range(200):
t.forward(x * y)
t.color(colors[x % 4])
t.left(91)
t._tracer(True)
done()
2.小蟒蛇
import turtle
turtle.penup()
turtle.pencolor("blue")
turtle.forward(-200)
turtle.pendown()
turtle.pensize(10)
turtle.right(45)
for i in range(4):
turtle.circle(40, 100)
turtle.circle(-40, 60)
turtle.circle(40, 80 / 2)
turtle.fd(30)
turtle.circle(16, 150)
turtle.fd(100)
turtle.done()
3.畫佩奇
import time
import turtle as t
t.pensize(4) # 設置畫筆的大小
t.colormode(255) # 設置GBK顏色范圍為0-255
t.color((255,155,192),"pink") # 設置畫筆顏色和填充顏色(pink)
t.setup(840,500) # 設置主窗口的大小為840*500
t.speed(10) # 設置畫筆速度為10
#鼻子
t.pu() # 提筆
t.goto(-100,100) # 畫筆前往F坐標(-100,100)
t.pd() # 下筆
t.seth(-30) # 筆的角度為-30°
t.begin_fill() # 外形填充的開始標志
a=0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a=a+0.08
t.lt(3) #向左轉3度
t.fd(a) #向前走a的步長
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill() # 依據輪廓填充
t.pu() # 提筆
t.seth(90) # 筆的角度為90度
t.fd(25) # 向前移動25
t.seth(0) # 轉換畫筆的角度為0
t.fd(10)
t.pd()
t.pencolor(255,155,192) # 設置畫筆顏色
t.seth(10)
t.begin_fill()
t.circle(5) # 畫一個半徑為5的圓
t.color(160,82,45) # 設置畫筆和填充顏色
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255,155,192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160,82,45)
t.end_fill()
#頭
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300,-30) # 順時針畫一個半徑為300,圓心角為30°的園
t.circle(100,-60)
t.circle(80,-100)
t.circle(150,-20)
t.circle(60,-95)
t.seth(161)
t.circle(-300,15)
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
a=0.4
for i in range(60):
if 0<=i<30 or 60<=i<90:
a=a+0.08
t.lt(3) #向左轉3度
t.fd(a) #向前走a的步長
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
#耳朵
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,56)
t.end_fill()
#眼睛
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
#腮
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
#嘴
t.color(239,69,19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30,40)
t.circle(40,80)
#身體
t.color("red",(255,99,71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100,10)
t.circle(300,30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300,30)
t.circle(100,3)
t.color((255,155,192),(255,100,100))
t.seth(-135)
t.circle(-80,63)
t.circle(-150,24)
t.end_fill()
#手
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300,15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20,90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300,15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20,90)
#腳
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
# 尾巴
t.pensize(4)
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70,20)
t.circle(10,330)
t.circle(70,30)
4.風和日麗圖
# coding=utf-8
# code by me
# 引用海龜庫以及隨機庫
import turtle as t
import random
import time
light = t.Turtle(visible=False)
wind = t.Turtle(visible=False)
def canvas(size_x=1200, size_y=900): # 設置畫布,有默認值
t.setup(size_x, size_y)
# 設置線的顏色以及size
def pencil(size=5, color="black"):
t.pensize(size)
t.pencolor(color)
def sun(): # 繪制太陽
light.pensize(5)
light.pencolor("black")
sec = int(time.time())
t.penup() # 畫紅色點
t.goto(-530, 310)
t.pendown()
t.dot(100, "red")
for i in range(1, 19): # 陽光效果
light.penup()
light.goto(-530, 310)
light.seth(i * 20)
light.forward(55)
light.pendown()
if (i + sec) % 2 == 1:
light.forward(15)
else:
light.forward(7)
def plant(): # 繪制天空以及大地
t.penup() # 每個繪制函數開頭都寫了這個,防止龜龜繪制另外的圖像移動時留下痕跡
length = 900 * 0.318 # 將畫布的縱向黃金分割
t.home()
t.goto(600, -450)
t.fillcolor("#DAA520") # 分割填充大地
t.begin_fill()
t.left(90)
t.forward(length)
t.left(90)
t.forward(1200)
t.left(90)
t.forward(length)
t.left(90)
t.forward(1200)
t.end_fill()
t.home() # 填充天空
t.goto(600, length - 450)
t.fillcolor("#B0C4DE")
t.begin_fill()
t.left(90)
t.forward(900 - length)
t.left(90)
t.forward(1200)
t.left(90)
t.forward(900 - length)
t.left(90)
t.forward(1200)
t.end_fill()
def butterfly(pos_x=0, pos_y=0): # 繪制蝴蝶,這里會隨機生成位置以及蝴蝶大小、顏色
light.penup()
light.goto(pos_x, pos_y)
light.pendown()
light.pensize(2)
light.seth(45)
color = ["#FF00FF", "#87CEFA", "#0000EE", "#FF4500", "#00FF00", "#00E5EE", "#FFFAFA"] # 一個顏色表,以及size表
size = [6, 7, 8, 9, 10, 11, 12]
tep_size = random.choice(size)
light.fillcolor(random.choice(color))
light.begin_fill()
light.circle(tep_size, 270) # 繪制翅膀
light.right(135)
light.pensize(3)
light.forward(tep_size / 2)
light.right(45)
light.forward(tep_size / 2)
light.back(tep_size / 2)
light.left(70)
light.forward(tep_size / 2)
light.back(tep_size / 2)
light.right(25)
light.pensize(4)
light.back(2.05 * tep_size)
light.seth(-90)
light.pensize(2)
light.circle(tep_size, -180)
light.pensize(4)
light.left(90)
light.forward(tep_size * 2)
light.back(tep_size * 2.5)
light.end_fill()
def botany(pos_x=0, pos_y=0, direction=0, flower=1, bend=10): # 植物函數,繪制向日葵,向日葵會迎風倒,效果很到位
light.pensize(3)
light.pencolor("black")
light.penup()
light.goto(pos_x, pos_y)
light.pendown()
light.left(90)
light.fillcolor("#00CD00")
light.begin_fill()
light.circle(50, 90) # 繪制葉片
light.left(90)
light.circle(50, 90)
light.penup()
light.goto(pos_x, pos_y)
light.pendown()
light.seth(-90)
light.pensize(6)
light.forward(50)
light.back(50)
light.pensize(3)
light.circle(50, -90)
light.right(90)
light.circle(50, -90)
light.end_fill()
if flower: # 判斷是否有花,這里默認有花
light.penup()
light.goto(pos_x, pos_y)
light.pendown()
light.pensize(4)
if direction:
light.seth(80) # 繪制稈
light.circle(130 - 5 * bend, 70 + 5 * bend, None)
else:
light.seth(-80)
light.circle(130 - 5 * bend, -70 - 5 * bend, None)
light.right(180)
tep_x, tep_y = light.xcor(), light.ycor()
light.forward(13)
light.right(30)
for i in range(6): # 繪制花瓣
light.fillcolor("#FFD700")
light.begin_fill()
light.circle(15, 300)
light.left(120)
light.end_fill()
light.goto(tep_x, tep_y)
light.dot(36, "#FFB90F")
def cloud(pos_x=0, pos_y=0, size=20): # 繪制云
pos = int(time.time())
pos %= 50
light.penup() # 云沒有要邊框,所以沒有pendown
light.goto(pos*8+pos_x, pos_y)
light.fillcolor("#E6E6FA")
light.begin_fill()
light.seth(-80)
light.circle(size, 110)
for i in range(1, 6): # 繪制下半部分
light.right(100)
light.circle(size, 110)
light.left(120)
for i in range(1, 7): # 繪制上半部分,上邊進行了六次循環,但是之前就進行了一次繪制,這里有七次循環
light.right(100)
light.circle(size, 110)
light.end_fill()
# def draw(x, y): # 這里是之前調試用的拖拽函數響應函數,不需使用
# t.goto(x, y)
# print(t.xcor(), t.ycor())
# def person(pos_x=0, pos_y=0): # 繪制人的函數,效果很拉跨,舍棄
# t.penup()
# t.goto(pos_x, pos_y)
# t.pendown()
#
# t.dot(44, "#FFDEAD")
# t.right(90)
# t.penup()
# t.forward(25)
# t.right(15)
# t.pendown()
# pencil(10)
# t.forward(50)
#
# t.right(35)
# t.forward(50)
# t.back(50)
# t.left(90)
# t.forward(27)
# t.right(110)
# t.forward(23)
#
# t.penup()
# t.goto(pos_x, pos_y)
# t.seth(-90)
# t.forward(25)
# t.right(15)
# t.forward(20)
# t.right(60)
# t.pendown()
# t.forward(50)
# tep_x1, tep_y1 = t.xcor(), t.ycor()
# t.back(50)
# t.right(160)
# t.forward(30)
# t.seth(90)
# t.forward(20)
#
# t.penup()
# t.goto(tep_x1, tep_y1)
# t.seth(-145)
# pencil(6)
# t.pendown()
# t.forward(50)
# t.right(90)
# t.forward(20)
# t.right(90)
# t.forward(15)
# t.right(90)
# t.forward(20)
# t.left(90)
# t.forward(150)
def star(pos_x=0, pos_y=0, size=10): # 繪制星星函數
color = ["#FFFFE0", "#FFFF00"]
light.penup()
light.goto(pos_x, pos_y)
angle = random.randint(0, 180)
light.seth(angle)
light.fillcolor(random.choice(color))
light.begin_fill()
for i in range(5): # 這個144度是查的資料
light.right(144)
light.forward(size)
light.end_fill()
def wind(): # 風函數,讓圖像看起來更有感覺,就是一條直線,加兩個圓
pos = int(time.time())
pos %= 5
color = ["#D3D3D3", "#CDCDB4"]
tep_color = random.choice(color)
light.penup()
light.goto(pos*80-1000, 50)
light.seth(0)
light.pendown()
light.pensize(5)
light.pencolor(tep_color)
light.forward(500)
light.pensize(4)
light.pencolor(tep_color)
light.left(45)
light.circle(50, 180)
light.pensize(3)
light.pencolor(tep_color)
light.circle(30, 90)
tep_color = random.choice(color)
light.penup() # 畫圈圈
light.goto(pos*140-1040, 80)
light.seth(0)
light.pendown()
light.pensize(5)
light.pencolor(tep_color)
light.forward(400)
light.pensize(4)
light.pencolor(tep_color)
light.left(45)
light.circle(40, 180)
light.pensize(3)
light.pencolor(tep_color)
light.circle(25, 90)
def lie(): # 這個函數是表達我對python的喜愛
t.penup()
t.goto(0, -360)
pencil(0, "#FFA54F")
t.write("節日快樂", align='center', font=('arial', 75, 'normal'))
t.hideturtle()
def dynamic():
light.clear()
sun()
star(200, 200) # 右上角有星星注意觀察 0.0
star(260, 230, 15)
star(180, 300)
star(300, 100, 15)
star(500, 290)
star(420, 310, 15)
star(300, 200)
star(260, 230, 15)
star(350, 352)
star(500, 180, 15)
star(560, 352)
cloud(-530, 280, 20)
cloud(300, 250, 30)
wind()
bend = int(time.time())
bend %= 5
bend += 14
light.seth(-100-bend) # 初始向日葵葉片角度
for i in range(14): # 生成向日葵
if i % 2 == 0:
botany(-520 + i * 50, -132, 0, 1, bend - i)
botany(-340 + i * 50, -132, 0, 1, bend - i)
else:
botany(-430 + i * 50, -142, 0, 1, bend - i)
botany(-230 + i * 50, -142, 0, 1, bend - i)
pos_x = [45, -96, -100, 410, 300, 580, 230, -50, -400, -320, -212]
pos_y = [45, -96, -100, 0, 20, 30, 29, -50, -20, -43, 10]
for i in range(6): # 生成蝴蝶,這里便于觀察到結果,蝴蝶有點大
butterfly(random.choice(pos_x), random.choice(pos_y))
t.ontimer(dynamic, 1000)
def piant(): # 這里是將繪制全放在這個函數里,讓main看起來簡潔
t.tracer(False)
t.delay(0)
canvas()
pencil()
plant()
lie()
dynamic()
if __name__ == "__main__":
piant()
# t.ondrag(draw, btn=1, add=None)
t.mainloop()

到此這篇關于Python海龜turtle基礎知識大全以及畫圖集合的文章就介紹到這了。



評論