欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中Turtle庫(kù)改變畫(huà)筆(海龜)方向的兩種方法總結(jié)

 更新時(shí)間:2022年11月23日 08:44:31   作者:BugShowMaker  
turtle庫(kù)是python標(biāo)準(zhǔn)庫(kù)之一,入門(mén)級(jí)繪圖庫(kù),import turtle之后即可使用,下面這篇文章主要給大家介紹了關(guān)于Python中Turtle庫(kù)改變畫(huà)筆(海龜)方向的兩種方法,需要的朋友可以參考下

引言:

本文是學(xué)習(xí)Turtle庫(kù)時(shí),發(fā)現(xiàn)兩種方法都能改變畫(huà)筆的方向,但二者又不是完全相同,故對(duì)其加以辨析總結(jié)到此,在本文你將收獲:

1.兩種改變畫(huà)筆方向的方法

2.矩形的繪制,等邊三角形的繪制

3.兩種方法的辨析 

使用left right改變畫(huà)筆方向

默認(rèn)畫(huà)筆的方向是向右,使用以下代碼就能發(fā)現(xiàn)

import turtle
turtle.forward(100)
turtle.mainloop()

要是我們想改變方向呢?

turtle.left(angle)

turtle.lt(angle)

turtle.right(angle)

turtle.rt(angle)

在turtle庫(kù)中提供了簡(jiǎn)寫(xiě)的方法 幾乎每種方法都有更簡(jiǎn)單的等效寫(xiě)法

在上面的兩個(gè)方法中,傳入的參數(shù)是整數(shù)和浮點(diǎn)數(shù)

單位默認(rèn)為角度但可以通過(guò)degrees() 和 radians() 函數(shù)改變?cè)O(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()

 更簡(jiǎn)單的寫(xiě)法

from turtle import *
for i in range(4):
    fd(100)
    lt(90)
mainloop()

使用setheading改變畫(huà)筆方向

 依舊使用官方文檔

turtle.setheading(to_angle)

turtle.seth(to_angle)

to_angle是要到的那個(gè)角度,與angle一樣傳入整數(shù)或者浮點(diǎn)數(shù),使用seth或者setheading相當(dāng)于在坐標(biāo)系操作,角度是固定

  后面會(huì)詳細(xì)講解

如果我們把left改為Sethheading 結(jié)果會(huì)是怎樣的呢?

from turtle import *
for i in range(4):
    fd(100)
    seth(90)
mainloop()

 最終變成了這樣 

就兩種結(jié)果的比較來(lái)看。Setheading繪制的矩形的時(shí)候,本應(yīng)該讓他轉(zhuǎn)彎的命令讓他停到了原地.

這是為什么呢?讓我們?cè)倩氐焦俜轿臋n:

在setheading修改方向時(shí),每一個(gè)角度是一個(gè)確切的方向,90度就是以畫(huà)筆位置為坐標(biāo)原點(diǎn)的北方,還記得傳入的參數(shù)名字是什么嗎?to_angle == 要到達(dá)的角度  在我們用sethading畫(huà)矩形的例子中,每一次循環(huán)都是將烏龜指向北方前進(jìn)100,所以才出現(xiàn)了意想不到結(jié)果。

 二者的區(qū)別到底是什么呢?

如果一定要我舉一個(gè)生活中的例子,我想指南針(sethheading)和我們集合時(shí)的向左(left)向右(right)轉(zhuǎn)能在一定程度上說(shuō)明他們的區(qū)別

向左向右轉(zhuǎn)參考的是我們本身的位置,指南針指向的是永遠(yuǎn)不變的南方

指南針的南方是根據(jù)磁場(chǎng)劃分的,setheading的南方是根據(jù)角度劃分的

向右轉(zhuǎn)是根據(jù)我們的右邊和左邊轉(zhuǎn)的,left/right是根據(jù)我們的畫(huà)筆(箭頭)的左右劃分的

 如果你不喜歡這種不是很嚴(yán)謹(jǐn)?shù)念惐?,那讓我們從更為?yán)謹(jǐn)?shù)慕嵌热ヌ接懸幌逻@個(gè)問(wèn)題

        setheading是以畫(huà)筆位置為坐標(biāo)原點(diǎn),建立直角坐標(biāo)系

        left是以畫(huà)筆位置為原點(diǎn)建立極坐標(biāo)系

三角實(shí)例

讓我們從實(shí)例出發(fā)了解一下這個(gè)問(wèn)題:繪制一個(gè)三角形

畫(huà)一個(gè)三角形可以有很多種方法,如果我們想通過(guò)這個(gè)例子探討兩個(gè)改變方法的異同,我們需要做的是讓變量相對(duì)來(lái)說(shuō)更少:

1.我們的起點(diǎn)要相同

2.我們繪制的流程要相同

3.我們使用的不同之處應(yīng)該只有改變方向時(shí)使用的方法

繪制流程:

1.從默認(rèn)原點(diǎ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)

 第一種方法在頂點(diǎn)位置時(shí)旋轉(zhuǎn)角度

第二種方法在頂點(diǎn)旋轉(zhuǎn)角度

總結(jié) 

到此這篇關(guān)于Python中Turtle庫(kù)改變畫(huà)筆(海龜)方向的兩種方法的文章就介紹到這了,更多相關(guān)Python Turtle庫(kù)改畫(huà)筆方向內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python進(jìn)行二次方程式計(jì)算的實(shí)例講解

    python進(jìn)行二次方程式計(jì)算的實(shí)例講解

    在本篇內(nèi)容里小編給大家整理了一篇關(guān)于python進(jìn)行二次方程式計(jì)算的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • python日期相關(guān)操作實(shí)例小結(jié)

    python日期相關(guān)操作實(shí)例小結(jié)

    這篇文章主要介紹了python日期相關(guān)操作,結(jié)合實(shí)例形式總結(jié)分析了Python針對(duì)日期時(shí)間的獲取、轉(zhuǎn)換、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • Python程序員鮮為人知但你應(yīng)該知道的17個(gè)問(wèn)題

    Python程序員鮮為人知但你應(yīng)該知道的17個(gè)問(wèn)題

    這篇文章主要介紹了Python程序員代碼編寫(xiě)時(shí)應(yīng)該避免的17個(gè)“坑”,也可以說(shuō)成Python程序員代碼編寫(xiě)時(shí)應(yīng)該避免的17個(gè)問(wèn)題,需要的朋友可以參考下
    2014-06-06
  • 解決TensorFlow訓(xùn)練內(nèi)存不斷增長(zhǎng),進(jìn)程被殺死問(wèn)題

    解決TensorFlow訓(xùn)練內(nèi)存不斷增長(zhǎng),進(jìn)程被殺死問(wèn)題

    今天小編就為大家分享一篇解決TensorFlow訓(xùn)練內(nèi)存不斷增長(zhǎng),進(jìn)程被殺死問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例

    python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例

    今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • PyTorch+LSTM實(shí)現(xiàn)單變量時(shí)間序列預(yù)測(cè)

    PyTorch+LSTM實(shí)現(xiàn)單變量時(shí)間序列預(yù)測(cè)

    時(shí)間序列是指在一段時(shí)間內(nèi)發(fā)生的任何可量化的度量或事件。這篇文章主要為大家介紹了PyTorch+LSTM實(shí)現(xiàn)單變量時(shí)間序列預(yù)測(cè)的相關(guān)資料,需要的可以參考一下
    2023-02-02
  • 詳解python中flask_caching庫(kù)的用法

    詳解python中flask_caching庫(kù)的用法

    這篇文章主要介紹了詳解python中flask_caching庫(kù)的用法,可以在一定的時(shí)間內(nèi)直接返回結(jié)果而不是每次都需要計(jì)算或者從數(shù)據(jù)庫(kù)中查找。flask_caching插件就是提供這種功能的神器,需要的朋友可以參考下
    2023-05-05
  • Python 完美解決 Import “模塊“ could not be resolved ...的問(wèn)題

    Python 完美解決 Import “模塊“ could not&n

    這篇文章主要介紹了Python 完美解決 Import “模塊“ could not be resolved ...,本文給大家分享問(wèn)題原因及解決方法,需要的朋友可以參考下
    2022-11-11
  • Python中if語(yǔ)句的使用方法詳解

    Python中if語(yǔ)句的使用方法詳解

    if語(yǔ)句用來(lái)表示某種可能的情況,并如何處理該情況。if語(yǔ)句可以用來(lái)表示一種可能性、兩種可能性或者多種可能性,這篇文章主要介紹了Python中if語(yǔ)句的使用方法,需要的朋友可以參考下
    2023-03-03
  • 利用PyQT5日期控件制作一個(gè)小日歷

    利用PyQT5日期控件制作一個(gè)小日歷

    這篇文章主要介紹了利用PyQT5的日期控件制作一個(gè)小日歷,因?yàn)閜yqt5已經(jīng)自帶了相關(guān)的日期控件,只需要明白如何調(diào)用再加上比較個(gè)性化的功能,這個(gè)日歷的小控件就制作完成了。需要的可以參考一下
    2022-01-01

最新評(píng)論