實例:繪制一條蟒蛇
#turtle:繪圖庫(海龜庫) import turtle turtle.setup(650,350,200,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("purple") turtle.seth(-40) for i in range(4): turtle.circle(40,80) turtle.circle(-40,80) turtle.circle(40,80/2) turtle.fd(40) turtle.circle(16,180) turtle.fd(40*2/3) turtle.done()
turtle庫:入門級圖形繪制庫,標准庫
turtle繪圖體系的python實現
一只turtle在畫布上游走,畫布單位是像素
文檔鏈接:https://docs.python.org/3/library/turtle.html
繪圖窗體相對於屏幕的位置:
turtle.setup(width,height,startx,starty)#繪圖窗體的大小和位置,不是必須的
turtle.setup(width,height)#繪圖窗體默認在屏幕中間
坐標體系:
空間坐標體系:
絕對坐標:初始位置在畫布的正中心
設置海龜爬行目的地:turtle.goto(100,100)
海龜坐標:對於海龜自身視角而言
改變海龜爬行方向:
turtle.circle(r,angle)
turtle.bk(d)#后退d
turtle.fd(d)#前進d
角度坐標體系:
改變海龜的行進角度
絕對角度:相對於畫布上是x軸
turtle.seth(45)
海龜角度:相對於海龜當前面向
turtle.left(angle)
turtle.right(angle)
色彩體系
turtle是RGB色彩體系(默認采用小數值)
turtle.colormode(mode) #mode=1.0小數值,mode=255整數值
turtle.colormode(1.0)
turtle.pencolor(1,1,0.4)
turtle庫的語法元素分析
import
from 庫 import 函數(*)#不用在前面加庫名,但會導致函數名沖突
import 庫 as 庫的小名 #重新命名為簡單的庫名,常用
畫筆控制函數
畫筆操作后一直有效,一般成對出現turtle.penup() turtle.pendown()
畫筆大小 turtle.pensize(width) = turtle,width(width)
畫筆顏色 turtle.pencolor(color) #color為rgb或字符串,rgb元組值:
(1,0.1,0.3) (“white”)((1,3,233))
運動控制函數:使海龜爬起來——畫出線
運動路徑函數(直線與曲線)
turtle.forward(d) = turtle.fd(d) #向前行進,d為負時倒退着行進
turtle.circle(r,extent=none) #曲線半徑,圓心在海龜左側r處,默認走整個圈
方向控制函數:絕對角度&相對角度
只改變海龜轉向!!
絕對角度:相對於絕對坐標系中的x軸
turtle.setHeading(angle) = turtle.seth(angle)
相對角度:相對於海龜當前面向
turtle.left(angle)
turtle.right(angle)
其他函數:
speed(數字或者后面的保留字):設置繪制速度;“fastest”: 0 “fast”: 10 “normal”: 6 “slow”: 3 “slowest”: 1
#注意 0 為最快【1,10】成山峰型 10以上則依然為最快,而且數字可以是浮點數
clear():清空筆跡
hideturtle():隱藏海龜