Python程式繪製圖形(7_9/30)

2020-08-11 15:03:41

前言

Life is short,you need Python !(持續更新)

大綱

  • 進一步理解程式的執行
  • 模組turtle的使用
  • turtle程式解析
  • 範例 電子時鐘與機械錶秒

進一步理解程式的執行

程式是如何執行的

在这里插入图片描述
中央處理器(CPU,central processing unit)作爲計算 機系統的運算和控制核心,是資訊處理、程式執行的最終 執行單元。 CPU是負責協調計算機的,我們寫的原始碼最終都是會提交給CPU,由CPU 來統一執行。 但是CPU對於我們寫的程式碼也是一竅不通的,不管是Java,C#還是Python。

Python也是也名爲直譯器的包。直譯器就是一種讓其他程式執行起來的程式。

你寫的程式碼能夠被計算機所執行,是因爲計算機認識你的程式碼嗎?不對的。
大家都知道計CPU是負責協調計算機的,我們寫的原始碼最終都是會提交給CPU,由CPU來統一執行。CPU對於我們寫的程式碼也是一竅不通的,不管是Java,C#還是Python。你所寫的原始碼,計算機都是通通不認識的,也沒有辦法去認識它們。而真正執行程式碼的是另外一個程式。這個程式,大部分都是用C語言寫成的,你可能感到很震驚對吧。爲了降低這個程式設計的複雜度,所以,通常會使用一種更接近於人類自然語言的方式來創造一種程式設計語法。表面上來看這些語法可以與計算機進行溝通和下達指令。但是,這個只是你的錯覺。現代高階語言大部分都是直譯語言,那什麼是直譯語言呢?認真去思考這兩個詞。「解析」你可以把它理解成翻譯的意思。那翻譯的意思在這裏就是說,它會把你寫的原始碼翻譯成機器程式碼。CPU只能執行一定的機器指令,所以說我們在不同的CPU平臺裏面,像x86/64的平臺,它有它獨有的指令,而且這個指令都是有專利保護的,ARM平臺也有它獨有的指令。那這個翻譯器它的工作原理其實很簡單。它就是將我們的原始碼的語法翻譯成一個「語法樹」,然後通過「語法樹」來分析,最終變成機器程式碼,也就是說CPU能夠直接執行的CPU指令。像Java的JVM就是負責來編譯解析的;還有C#的CLR,也是公共語言執行時,也是來負責於同樣的事情的;對於Python而言,解析器其實也挺多的,像我們比較常用的,也就是從官網下載的一個CPYTHON直譯器,是目前使用比較多的直譯器,一看名字就知道,它是用C寫的。當然除了CPYTHON以外,其實還有很多其他的第三方直譯器,PYPY,還有JYTHON,還有IPYTHON、IROPYTHON等等。這些第三方直譯器都在不同的方面做了針對性的一些優化。例如JYTHON,它可以把我們寫的程式碼直接翻譯成JAVA程式碼。所以實際上你的程式碼,CPU並不認識,而是由另外一個程式來執行的。

模組turtle的使用

turtle模組是什麼

turtle(海龜)庫是turtle繪圖體系的Python實現。Python語言的標準庫之一,入門級的圖形繪製函數庫。

turtle模組的基本框架

turtle庫繪製圖形有一個基本框架:一個小海龜在座標系中爬行, 其爬行軌跡形成了繪製圖形。剛開始繪製時,小海龜位於畫布正中 央,此處座標爲(0,0),頭部方向爲水平右方。

turtle模組的表單函數

在这里插入图片描述

turtle模組的空間座標體系

在这里插入图片描述
在这里插入图片描述

turtle模組的角度座標體系

在这里插入图片描述

色彩體系

在这里插入图片描述

turtle程式解析

畫筆控制函數

畫筆操作後一直有效,一般成對出現。

  • turtle.penup() 別名 turtle.pu() 擡起畫筆,海龜在天上
  • turtle.pendown() 別名 turtle.pd() 落下畫筆,海龜在地面

畫筆設定後一直有效,直至下次重新設定。

  • turtle.pensize(width) 別名 turtle.width(width) 畫筆寬度,海龜的腰圍
  • turtle.pencolor(color) color爲顏色字串或r,g,b值 畫筆顏色,海龜在塗裝

畫筆運動函數

走直線:畫筆設定後一直有效,直至下次重新設定

  • turtle.forward(d) 別名 turtle.fd(d) 向前行進,海龜走直線
  • d: 行進距離,可以爲負

走曲線:turtle.circle(r, extent=None) 根據半徑r繪製extent角度的弧形

  • r: 預設圓心在海龜左側r距離的位置
  • extent: 繪製角度,預設是360度整圓

方向控制函數

控制海龜面對方向: 絕對角度

  • turtle.setheading(angle) 別名 turtle.seth(angle)
  • angle: 行進方向的絕對角度

控制海龜面對方向:海龜角度

  • turtle.left(angle) 海龜向左轉
  • turtle.right(angle) 海龜向右轉
  • angle: 在海龜當前行進方向上旋轉的角

範例 電子時鐘與機械秒錶

在这里插入图片描述

回顧總結

思維導圖

在这里插入图片描述