turtle庫的學習筆記(python)

来源:https://www.cnblogs.com/Cute-pig/archive/2020/03/15/12496619.html
-Advertisement-
Play Games

turtle庫的學習筆記(python) turtle(海龜)是Python重要的標準庫之一,它能夠進行基本的圖形繪製。turtle圖形繪製的概念誕生於1969年,成功應用於LOGO編程語言。turtle庫繪製圖形有一個基本框架:一個小海龜在坐標系中爬行,其爬行軌跡形成了繪製圖形。剛開始繪製時,小海 ...


turtle庫的學習筆記(python)

        turtle(海龜)是Python重要的標準庫之一,它能夠進行基本的圖形繪製。turtle圖形繪製的概念誕生於1969年,成功應用於LOGO編程語言。
turtle庫繪製圖形有一個基本框架:一個小海龜在坐標系中爬行,其爬行軌跡形成了繪製圖形。剛開始繪製時,小海龜位於畫布正中央,此處坐標為(0,0),前進方向為水平右方。  在Python3系列版本安裝目錄的Lib文件下可以找到turtle.py文件。        

  一、用import保留字對turtle庫的引用有如下3種方式,效果相同:

(1)import turtle

 對turtle庫中函數調用採用turtle.<函數名>( )形式:

(2)from turtle import * (當程式中有多個庫時容易混淆產生錯誤)

對turtle庫中函數調用採用<函數名>( )形式,不再使用turtle.作為前導:

  (3)  import turtle as t

保留字as將turtle庫給予別名t, 則對turtle庫中函數調用採用更簡潔的t.<函數名>( )形式:

 二、繪圖的基礎知識

(1)繪圖視窗設置命令

turtle.setup(400,300,200,100):參數以此(寬,高,距離屏幕左邊距離,距離屏幕上方距離),屏幕左上角原點,單位像素。

 (2)運動命令

turtle.goto(x,y):直接跳轉到(x,y)點,以繪圖視窗中心為原點,向右為x軸,以上為y軸。

turtle.fd(d)、turtle.forward(d):以當前方向,往前行進d像素。

turtle.bk(d)、turtle.backword(d):保持當前方向不變,往後退行d像素。

turtle.circle(r,angle):從當前位置以r為半徑圓的angle角度旋轉。

(3)方向設置命令

turtle.seth(angle):以x軸方向為起點將方向偏轉為angle度,逆時針為正。只改變行進方向但不行進。

turtle.left(angle):在當前行進方向的基礎上,向左旋轉angle度。

turtle.right(angle):在當前行進方向的基礎上,向右旋轉angle度。

(4)畫筆控制命令

turtle.penup():抬筆

turtle.pendown():落筆

turtle.pensize(width):畫筆粗細

turtle.pencolor(顏色名red/RGB三元組/顏色編碼):畫筆顏色

turtle.fillcolor(colorstring):繪製圖形的填充顏色

turtle.begin_fill():開始填充

turtle.end_fill():結束填充

turtle.filling():返回當前是否在填充狀態

(5)全局控制命令

turtle.clear():清空turtle視窗,但是turtle的位置和狀態不會改變

turtle.reset():清空視窗,重置turtle狀態為起始狀態

turtle.undo():撤銷上一個turtle動作

turtle.isvisible():返回當前turtle是否可見 stamp():複製當前圖形 turtle.write(s[,font=("font-name",font_size,"font_type")]):寫文本,s為文本內容,font是字體的參數,裡面分別為字體名稱,大小和類型;font為可選項, font的參數也是可選項

三、繪圖舉例

(1)彩色小蟒蛇

 1 #PythonDraw.py
 2 import turtle as tt
 3 def drawSnake(rad,angle,len,neckrad):
 4     colors=["LightCoral","orange","yellow","MediumSpringGreen","cyan","MediumBlue"]#六種顏色
 5     for i in range(len):
 6         tt.color(colors[i])
 7         tt.circle(rad,angle)
 8         tt.circle(-rad,angle)
 9     tt.color("Fuchsia")
10     tt.circle(rad,angle/2)
11     tt.fd(rad)
12     tt.circle(neckrad+1,180)
13     tt.fd(rad*2/3)
14 
15 
16 def main():
17     tt.setup(1300,800,0,0)
18     tt.penup()
19     tt.goto(-350,0)
20     tt.pendown()
21     pythonsize=30
22     tt.pensize(30)
23     tt.seth(-40)
24     drawSnake(40,80,6,pythonsize/2)
25     
26 
27 main()
28 tt.done()

Python小海龜繪圖之顏色碼對照表:

https://mp.weixin.qq.com/s?src=11&timestamp=1584246963&ver=2217&signature=lMb0twV32ZppcpRo3AfqFMZi0vtHB3oLPjjYMCACHz9PNO7EoncrvGCRWUeg5FYzGioV2aAExFCASNJUG7vGl2R5THDCOZwiQqHF0DvHGH4i7u3KYCY*LPJW11OuBrkj&new=1

 

(2)玫瑰花的繪製

 

  1 from turtle import *
  2 import time
  3 
  4 setup(5000,5000,0,0)
  5 speed(0)
  6 penup()
  7 pencolor("SaddleBrown")   #改變畫筆顏色
  8 seth(90)
  9 fd(340)
 10 seth(0)
 11 pendown()
 12 
 13 speed(5)
 14 begin_fill()
 15 fillcolor('blue')   #改變花瓣顏色
 16 circle(50,30)
 17 
 18 for i in range(10):
 19     fd(1)
 20     left(10)
 21 
 22 circle(40,40)
 23 
 24 for i in range(6):
 25     fd(1)
 26     left(3)
 27 
 28 circle(80,40)
 29 
 30 for i in range(20):
 31     fd(0.5)
 32     left(5)
 33 
 34 circle(80,45)
 35 
 36 for i in range(10):
 37     fd(2)
 38     left(1)
 39 
 40 circle(80,25)
 41 
 42 for i in range(20):
 43     fd(1)
 44     left(4)
 45 
 46 circle(50,50)
 47 
 48 time.sleep(0.1)
 49 
 50 circle(120,55)
 51 
 52 speed(0)
 53 
 54 seth(-90)
 55 fd(70)
 56 
 57 right(150)
 58 fd(20)
 59 
 60 left(140)
 61 circle(140,90)
 62 
 63 left(30)
 64 circle(160,100)
 65 
 66 left(130)
 67 fd(25)
 68 
 69 penup()
 70 right(150)
 71 circle(40,80)
 72 pendown()
 73 
 74 left(115)
 75 fd(60)
 76 
 77 penup()
 78 left(180)
 79 fd(60)
 80 pendown()
 81 
 82 end_fill()
 83 
 84 right(120)
 85 circle(-50,50)
 86 circle(-20,90)
 87 
 88 speed(1)
 89 fd(75)
 90 
 91 speed(0)
 92 circle(90,110)
 93 
 94 penup()
 95 left(162)
 96 fd(185)
 97 left(170)
 98 pendown()
 99 circle(200,10)
100 circle(100,40)
101 circle(-52,115)
102 left(20)
103 circle(100,20)
104 circle(300,20)
105 speed(1)
106 fd(250)
107 
108 penup()
109 speed(0)
110 left(180)
111 fd(250)
112 circle(-300,7)
113 right(80)
114 circle(200,5)
115 pendown()
116 
117 left(60)
118 begin_fill()
119 fillcolor('gold')   #改變葉子顏色
120 circle(-80,100)
121 right(90)
122 fd(10)
123 left(20)
124 circle(-63,127)
125 end_fill()
126 
127 penup()
128 left(50)
129 fd(20)
130 left(180)
131 
132 pendown()
133 circle(200,25)
134 
135 penup()
136 right(150)
137 
138 fd(180)
139 
140 right(40)
141 pendown()
142 begin_fill()
143 fillcolor('gold')   #改變葉子顏色
144 circle(-100,80)
145 right(150)
146 fd(10)
147 left(60)
148 circle(-80,98)
149 end_fill()
150 
151 penup()
152 left(60)
153 fd(13)
154 left(180)
155 
156 pendown()
157 speed(1)
158 circle(-200,23)
159 
160 
161 
162 exitonclick()

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 記錄什麼是托管代碼?學習過程。 托管代碼 C#,就是其中一種托管代碼。托管代碼的執行過程可以交由運行時管理,在.Net里,這種運行時稱為“公共語言運行時”(Common Language RunTime,CLR)。 托管代碼先經過編譯器編譯成“中間語言”代碼(Intermediate Languag ...
  • 我就直奔主題了。 我按照大的方向總結了一下: 學習習慣 按照自己的生活習慣,每天或者每周給自己安排學習時間,如果執行一段時間不能堅持,學習時間減半方法繼續執行。 註意:比學習更重要的是學習習慣。習慣練成了已經成功一半了。 學習方法 學習途徑有很多種,常用的有看書,看視頻,去培訓班,老師輔導。 怎樣提 ...
  • 我們可以在Github上面直接查看ASP.NET Core 3.x的源代碼,但是我們也可以把源代碼下載下來進行查看。 而下載源代碼進行查看有很多好處: 任意的導航源代碼 內置了一個示例項目 直接調試源代碼 下載源代碼 想下載並配置好源碼,你需要: 最新版的Visual Studio 或者其它IDE ...
  • 前言 Identity Server4基於OAuth2.0協議的一套用於身份認證和授權的框架。OAuth2.0協議是一個委托協議,通過這個協議,我們可以讓某個客戶端頂著一個有資源訪問許可權的身份去訪問那些被保護的資源。授權的流程簡單概括起來,客戶端應用需要先去請求Identity Server4,如果 ...
  • 前要: 有一12年買的手提電腦,打算在其上直接裝linux部署分散式爬蟲順便學linux 唔,開機吧……然開機動畫沒有,只有間斷有序的悲鳴,一查,主板逝世 賣給收買舊電腦估計不到20…不能忍,想了想不如裝移動硬碟上做個mobile linux,OK,遂寫此篇 工具: 硬碟盒/移動硬碟、U盤、(環境w ...
  • Ansible的指定用戶與密碼登錄、免密登錄、指定ssh埠以及主機清單Inventory配置 ...
  • [linux內核分析———SLAB原理及實現 ](https://blog.csdn.net/chenxiancool/article/details/7638804) Slab原理及實現 1. 整體關係圖 ! 註:SLAB,SLOB,SLUB都是內核提供的分配器,其前端介面都是一致的,其中SLAB ...
  • 最近使用brew update時,發現homebrew更新緩慢;於是進行更換為國內源; 晚上這種教程很多,我選擇的是中科大的源;當然清華的源也是可以的,這取決於你當前所處的地理位置,這樣有更通暢的網路鏈接; https://mirrors.ustc.edu.cn/help/brew.git.html ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...