日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

Python turtle(介绍一)

發(fā)布時(shí)間:2024/2/2 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python turtle(介绍一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)于繪制圖形庫(kù)turtle

# 畫布上,默認(rèn)有一個(gè)坐標(biāo)原點(diǎn)為畫布中心的坐標(biāo)軸(0,0),默認(rèn)"standard"模式坐標(biāo)原點(diǎn)上有一只面朝x軸正方向小烏龜

一:海龜箭頭Turtle相關(guān)方法

#############################

# 1.繪制的運(yùn)動(dòng) #

#############################

a).移動(dòng)和繪制

# turtle.forward(distance) | turtle.fd(distance)

# 畫筆向繪制方向的當(dāng)前方向移動(dòng)distance(integer or float)的pixels距離,

# 例如:

 turtle.fd(150)

# turtle.backward(distance) | turtle.back(distance) | turtle.bk(distance)

# 畫筆向繪制方向的相反方向移動(dòng)distance(integer or float)的pixels距離

# 例如:

turtle.backward(200)

# turtle.right(angle) | turtle.rt(angle)

# 繪制方向向右旋轉(zhuǎn)angle度

# 例如:

turtle.rt(45)

# turtle.left(angle) | turtle.lt(angle)

# 繪制方向向左旋轉(zhuǎn)angle度

# 例如:

turtle.lt(45)

# turtle.setpos(x, y=None) | turtle.setposition(x, y=None) | turtle.goto(x, y=None)

# 移動(dòng)到絕對(duì)位置,如果畫筆按下,就畫線

# 參數(shù)x(a number or a pair/vector of numbers)

# 參數(shù)y(a number or None)

# 如果y為None,x必須是a pair of coordinates or a Vec2D

# 例如:

turtle.setpos((20,80))

turtle.setposition(120,20)

turtle.goto(60,30)

# turtle.setx(x)

# y縱向坐標(biāo)不變,更改x橫向坐標(biāo),x(integer or float)

# 例如:

turtle.setx(15)

# turtle.sety(y)

# x橫向坐標(biāo)不變,更改y縱向坐標(biāo),y(integer or float)

# 例如:

turtle.sety(15)

# turtle.seth(to_angle) | turtle.setheading(to_angle)

# 將方向設(shè)置成to_angle.to_angle(integer or float)to_angle的值在不同模式下含義如下

"standard"模式逆時(shí)針 "logo"模式順時(shí)針

0 - east 0 - north

90 - north 90 - east

180 - west 180 - south

270 - south 270 - west

如下圖"standard"模式時(shí)(默認(rèn)0時(shí)表示x方向向右即向東);"logo"模式時(shí)(默認(rèn)0時(shí)表示y方向向上即向北)

y"logo"時(shí)

            ^

|

|

|

(0,0)——————> x"standard"時(shí)

# 例如:

# "standard"模式時(shí)角度為逆時(shí)針,所以90度表示向北;logo"模式時(shí)角度為順時(shí)針,所以90度表示向東

turtle.setheading(90)

# turtle.home()

# 將位置和方向恢復(fù)到初始狀態(tài),位置初始坐標(biāo)為(0,0),方向初始為("standard"模式為right向右即東,"logo"模式是up向上即北)

# 例如:

turtle.home()

# turtle.circle(radius, extent=None, steps=None)

# 按給定的半徑畫圓,當(dāng)前位置為圓的初始端點(diǎn)

Parameters:

radius(a number,圓半徑,為正數(shù)則逆時(shí)針畫,為負(fù)數(shù)則順時(shí)針畫,方向隨著軌跡的變化而變化)

extent(a number or None,一個(gè)角度,決定哪部分圓圈被繪制,不提供extent表示畫完整的圓)

steps(an integer or None,指定半徑radius前提下,完成extent的角度時(shí),分了幾步,如畫正5邊形時(shí)turtle.circle(40, None, 5))

# 例如:

turtle.home()

# 當(dāng)前位置(0,0)開始逆時(shí)針畫半徑為30的圓

turtle.circle(30)

# 逆時(shí)針畫半徑為50的半圓

turtle.circle(50, 180)

# 方向值為180,"standard"模式時(shí)方向向左,"logo"模式方向向下

print(turtle.heading())

turtle.circle(-50, 180)

print(turtle.heading())

# 逆時(shí)針?lè)较虬霃綖?0畫五邊形(5步畫接近整圓的圖形)

turtle.circle(40, None, 5)

# turtle.dot(size=None, *color)

# 按給定直徑size畫圓點(diǎn)(None[未提供時(shí)取pensize+4 和 2*pensize中的最大值] 或 >= 1的整數(shù)),color圓點(diǎn)顏色

# 例如:

turtle.home()

# 當(dāng)前畫筆大小為1

print(turtle.pensize())

# 未提供取最大直徑值為pensize+4 = 5

turtle.dot()

turtle.fd(50)

# 以直徑為5畫藍(lán)色圓點(diǎn)

turtle.dot(5, "blue")

turtle.fd(50)

# 以直徑為20畫紅色圓點(diǎn)

turtle.dot(20, "red")

turtle.fd(50)

print(turtle.position())

print(turtle.heading())

# turtle.stamp()和turtle.clearstamp(stamp_id)和turtle.clearstamps(n=None)

# turtle.stamp()是在當(dāng)前位置拷貝一份此時(shí)箭頭的形狀,返回一個(gè)stamp_id(int型),

# turtle.clearstamp(stamp_id)用來(lái)刪除指定stamp_id的箭頭形狀

# turtle.clearstamps(n=None),n為None時(shí)表示刪除所有拷貝的箭頭形狀;為0不刪除;n > 0 表示刪除前n個(gè),n < 0 表示刪除后n個(gè)

# 例如:

# 畫筆顏色設(shè)成紅色

turtle.color("red")

num = 0

while num < 5:

# 當(dāng)前位置拷貝一份箭頭形狀

stamp_id = turtle.stamp()

turtle.fd(50)

num += 1

# 改變畫筆顏色為黑

turtle.color("black")

# 刪除拷貝的箭頭形狀(此處id最后一次復(fù)制的stamp_id)

turtle.clearstamp(stamp_id)

# 刪除前1個(gè)

turtle.clearstamps(1)

# 刪除后1個(gè)

turtle.clearstamps(-1)

# 全部刪除

turtle.clearstamps()

# 不刪除

# turtle.clearstamps(0)

# turtle.undo()

# (每調(diào)用一次就)撤銷最后的一次動(dòng)作,需要撤銷所有可通過(guò)while turtle.undobufferentries(),turtle.undobufferentries()返回當(dāng)前可撤銷次數(shù)

# 例如:

# 一直撤銷最后一個(gè)動(dòng)作直到不可撤銷

while turtle.undobufferentries():

# 撤銷最后的一次動(dòng)作

turtle.undo()

# turtle.speed(speed=None)

Parameters:

peed為0-10的整數(shù)(1-10越來(lái)越快,0表示最快,參數(shù)為小數(shù)會(huì)被自動(dòng)置為整數(shù))或如下內(nèi)置的速度字符串,如果>10或小于0.5則被置為0;為>=0.5的小數(shù)時(shí)被置為四舍五入的值。speed未設(shè)置則返回當(dāng)前速度

# 內(nèi)置的速度字符串:

"fastest": 0

"fast": 10

"normal": 6

"slow": 3

"slowest": 1

# 例如:

# 速度為0,表示速度最快

turtle.speed(0)

# <0.5速度會(huì)被置為0,表示速度最快

turtle.speed(0.4)

# >10速度會(huì)被置為0,表示速度最快

turtle.speed(20)

# 速度字符串fastest,表示速度最快

turtle.speed("fastest")

# 速度最慢

turtle.speed("slowest")

# 速度為9

turtle.speed(9)

b).獲取(海龜)箭頭的狀態(tài)

# position() | pos()

# 返回(海龜)箭頭當(dāng)前位置坐標(biāo)

# 例如:

turtle.pos()

# turtle.towards(x, y=None)

# 返回(海龜)箭頭當(dāng)前位置指向(x,y)位置連線的向量的角度(取決于當(dāng)前模式,"standard"/"world"默認(rèn)方向向右(即東)逆時(shí)針開始;"logo"模式默認(rèn)方向向上(即北)順時(shí)針開始)

Parameters:

x:x可以是一個(gè)number或一個(gè)pair/vector of numbers或一個(gè)turtle instance

y:x是一個(gè)number,y就是一個(gè)number;否則y為None

# 例如:

turtle.goto(20, 20)

# 移動(dòng)后,位置為(20,20),兩個(gè)向量分別是(20,20)點(diǎn)到(0, 0)點(diǎn)的向量和(20, 20)點(diǎn)到箭頭當(dāng)前方向的向量("standard"模式默認(rèn)向右,逆時(shí)針?biāo)憬嵌?"logo"模式默認(rèn)向上,順時(shí)針?biāo)憬嵌?

angle = turtle.towards(0, 0)

print("兩向量角度:", angle)

# turtle.towards((0, 0), None)

angle = turtle.towards((0, 0))

print("兩向量角度:", angle)

# turtle箭頭當(dāng)前位置與turtle1箭頭當(dāng)前位置連線的向量到turtle箭頭當(dāng)前位置與turtle當(dāng)前方向連線的向量角度

turtle1 = turtle.Turtle()

turtle1.setpos(0, 0)

angle = turtle.towards(turtle1)

# "standard"模式逆時(shí)針?biāo)憬嵌?所以towards()后的角度angle是225,不是135

print("兩向量角度:", angle)

# turtle.xcor() 和 turtle.ycor()

# turtle.xcor()是返回(海龜)箭頭的x坐標(biāo),turtle.ycor()是返回(海龜)箭頭的y坐標(biāo)

# 例如:

turtle.lt(50)

turtle.fd(100)

# 打印箭頭當(dāng)前坐標(biāo)(64.28,76.60)

print(turtle.pos())

# 原數(shù)據(jù)64.27876096865394,保留5位后打印64.27876

print(round(turtle.xcor(), 5))

# 原數(shù)據(jù)76.60444431189781,保留5位后打印76.60444

print(round(turtle.ycor(), 5))

# turtle.heading()

# 返回當(dāng)前箭頭方向角度,取決于當(dāng)前模式mode,"standard"模式時(shí)默認(rèn)方向向右逆時(shí)針計(jì)算角度;"logo"模式默認(rèn)方向向上,順時(shí)針計(jì)算角度

# 例如:

見turtle.circle中的例子

總結(jié)

以上是生活随笔為你收集整理的Python turtle(介绍一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。