Python中Turtle庫改變畫筆(海龜)方向的兩種方法總結(jié)
引言:
本文是學(xué)習(xí)Turtle庫時,發(fā)現(xiàn)兩種方法都能改變畫筆的方向,但二者又不是完全相同,故對其加以辨析總結(jié)到此,在本文你將收獲:
1.兩種改變畫筆方向的方法
2.矩形的繪制,等邊三角形的繪制
3.兩種方法的辨析
使用left right改變畫筆方向
默認(rèn)畫筆的方向是向右,使用以下代碼就能發(fā)現(xiàn)
import turtle turtle.forward(100) turtle.mainloop()
要是我們想改變方向呢?
turtle.
left
(angle)
turtle.
lt
(angle)
turtle.
right
(angle)
turtle.
rt
(angle)在turtle庫中提供了簡寫的方法 幾乎每種方法都有更簡單的等效寫法
在上面的兩個方法中,傳入的參數(shù)是整數(shù)和浮點數(shù)
import turtle turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.mainloop()
更簡單的寫法
from turtle import * for i in range(4): fd(100) lt(90) mainloop()
使用setheading改變畫筆方向
依舊使用官方文檔
turtle.
setheading
(to_angle)
turtle.
seth
(to_angle)to_angle是要到的那個角度,與angle一樣傳入整數(shù)或者浮點數(shù),使用seth或者setheading相當(dāng)于在坐標(biāo)系操作,角度是固定的
后面會詳細(xì)講解
如果我們把left改為Sethheading 結(jié)果會是怎樣的呢?
from turtle import * for i in range(4): fd(100) seth(90) mainloop()
最終變成了這樣
就兩種結(jié)果的比較來看。Setheading繪制的矩形的時候,本應(yīng)該讓他轉(zhuǎn)彎的命令讓他停到了原地.
這是為什么呢?讓我們再回到官方文檔:
在setheading修改方向時,每一個角度是一個確切的方向,90度就是以畫筆位置為坐標(biāo)原點的北方,還記得傳入的參數(shù)名字是什么嗎?to_angle == 要到達(dá)的角度 在我們用sethading畫矩形的例子中,每一次循環(huán)都是將烏龜指向北方前進(jìn)100,所以才出現(xiàn)了意想不到結(jié)果。
二者的區(qū)別到底是什么呢?
如果一定要我舉一個生活中的例子,我想指南針(sethheading)和我們集合時的向左(left)向右(right)轉(zhuǎn)能在一定程度上說明他們的區(qū)別
向左向右轉(zhuǎn)參考的是我們本身的位置,指南針指向的是永遠(yuǎn)不變的南方
指南針的南方是根據(jù)磁場劃分的,setheading的南方是根據(jù)角度劃分的
向右轉(zhuǎn)是根據(jù)我們的右邊和左邊轉(zhuǎn)的,left/right是根據(jù)我們的畫筆(箭頭)的左右劃分的
如果你不喜歡這種不是很嚴(yán)謹(jǐn)?shù)念惐?,那讓我們從更為?yán)謹(jǐn)?shù)慕嵌热ヌ接懸幌逻@個問題
setheading是以畫筆位置為坐標(biāo)原點,建立直角坐標(biāo)系
left是以畫筆位置為原點建立極坐標(biāo)系
三角實例
讓我們從實例出發(fā)了解一下這個問題:繪制一個三角形
畫一個三角形可以有很多種方法,如果我們想通過這個例子探討兩個改變方法的異同,我們需要做的是讓變量相對來說更少:
1.我們的起點要相同
2.我們繪制的流程要相同
3.我們使用的不同之處應(yīng)該只有改變方向時使用的方法
繪制流程:
1.從默認(rèn)原點前進(jìn)100
2.朝左方旋轉(zhuǎn)前進(jìn)100
3.朝左下旋轉(zhuǎn)前進(jìn)100
代碼如下:
from turtle import * //第一種方法 fd(100) left(120) fd(100) left(120) fd(100) //第二種方法 fd(100) setheading(120) fd(100) setheading(240) fd(100)
第一種方法在頂點位置時旋轉(zhuǎn)角度
第二種方法在頂點旋轉(zhuǎn)角度
總結(jié)
到此這篇關(guān)于Python中Turtle庫改變畫筆(海龜)方向的兩種方法的文章就介紹到這了,更多相關(guān)Python Turtle庫改畫筆方向內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python程序員鮮為人知但你應(yīng)該知道的17個問題
這篇文章主要介紹了Python程序員代碼編寫時應(yīng)該避免的17個“坑”,也可以說成Python程序員代碼編寫時應(yīng)該避免的17個問題,需要的朋友可以參考下2014-06-06解決TensorFlow訓(xùn)練內(nèi)存不斷增長,進(jìn)程被殺死問題
今天小編就為大家分享一篇解決TensorFlow訓(xùn)練內(nèi)存不斷增長,進(jìn)程被殺死問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例
今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11PyTorch+LSTM實現(xiàn)單變量時間序列預(yù)測
時間序列是指在一段時間內(nèi)發(fā)生的任何可量化的度量或事件。這篇文章主要為大家介紹了PyTorch+LSTM實現(xiàn)單變量時間序列預(yù)測的相關(guān)資料,需要的可以參考一下2023-02-02Python 完美解決 Import “模塊“ could not&n
這篇文章主要介紹了Python 完美解決 Import “模塊“ could not be resolved ...,本文給大家分享問題原因及解決方法,需要的朋友可以參考下2022-11-11