1. 程式人生 > >Turtle繪製帶顏色和字型的圖形(Python3)

Turtle繪製帶顏色和字型的圖形(Python3)

在Python中有很多編寫圖形程式的方法,一個簡單的啟動圖形化程式設計的方法是使用Python內嵌的Turtle模組。Turtle是Python內嵌的繪製線、圓以及其他形狀(包括文字)的圖形模組。它很容易學習並且使用簡單。

一個Turtle實際上是一個物件,在匯入Turtle模組時,就建立了物件,然後,可以呼叫Turtle物件的各種方法完成不同的操作。

當建立一個Turtle物件時,它的位置被設定在(0,0)處——視窗的中心,而且它的方向被設定為向右。Turtle模組用筆來繪製圖形。預設情況下,筆是向下的(就像真實的筆尖觸碰著一張紙)。如果筆是向下的,那麼當移動Turtle的時候,它就會繪製出一條從當前位置到新位置的線。

下面兩個表是控制筆的繪製狀態的方法和移動Turtle的方法:



circle方法有三個引數:radius是必需的,extent和step是可有可無的。extent是一個角度,它決定繪製圓的哪一部分。step決定使用的階數。如果step是3/4/5/6……,那麼circle方法將繪製一個裡面包含被圓括住的的三邊、四邊、五邊、六邊或更多邊形(即正三角形、正方形、五邊形、六邊形等)。如果不指定階數,那麼circle方法就只畫一個圓。

下面表是Turtle筆的顏色、填充和繪製方法:

 

程式碼和執行例項:



(如果我理解有錯誤,希望大佬們一定要指出來委屈,不要誤導了其他人才好)

附上面顯示的彩色圖形的完整程式碼:

import turtle

turtle.pensize(3)
turtle.penup()
turtle.goto(-100, -50)
turtle.pendown()
turtle.begin_fill()
turtle.color("red")
turtle.circle(40, steps=3)
turtle.end_fill()

turtle.penup()
turtle.goto(0, -50)
turtle.pendown()
turtle.begin_fill()
turtle.color("yellow")
turtle.circle(50)
turtle.end_fill()

turtle.penup()
turtle.goto(100, -50)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor("green")
turtle.circle(40, steps=6)
turtle.end_fill()

turtle.penup()
turtle.goto(-50, 100)
turtle.pendown()
turtle.color("blue")
turtle.write("Colorful Shapes",  font = ("Times", 18,"bold"))
turtle.end_fill()

turtle.hideturtle()

turtle.done()



補充:

  • import turtle:匯入Turtle模組中定義的所有函式,這樣就可以使用所有函式。
  • penup()和pendown():設定擡起或放下筆以控制移動筆時是否繪製。剛學習時可能對這兩個函式有點暈,我就這樣理解:penup,擡起筆,就是我擡起筆來做動作,這時候筆沒有挨著紙,所以之後移動時並不會畫圖形;pendown,落下筆,就是我現在將筆挨著紙了,一旦移動一步就會有個畫出來的形狀。
  • forward():向箭頭指的方向畫形狀
  • write():寫一個文字字串
  • Turtle的done()命令可以導致程式暫停直到使用者關閉Python Turtle圖形化視窗,它的目的是給使用者時間來檢視圖形。沒有這一行,圖形視窗會在程式完成時立即關閉。

=========================================================================================

2017/10/9      20:45更新

先上程式碼:

# -*- coding: utf-8 -*-
"""
繪製帶顏色和文字的圖形
"""

import turtle

turtle.penup()
turtle.goto(-200, -50)
turtle.pendown()
turtle.begin_fill()    #開始填充
turtle.color("black")  #填充黑色
turtle.circle(40)
turtle.end_fill()      #填充結束

turtle.color("red")    #畫筆顏色為紅色
turtle.penup()
turtle.goto(-100, -50)
turtle.pendown()
turtle.circle(40, steps=3)

turtle.color("purple")    #畫筆顏色為紫色
turtle.penup()
turtle.goto(0, -50)
turtle.pendown()
turtle.begin_fill()       #開始填充
turtle.fillcolor("gray")  #填充灰色
turtle.circle(40, steps=4)
turtle.end_fill()         #填充結束


turtle.penup()
turtle.goto(100, -50)
turtle.pendown()
turtle.begin_fill()        #開始填充
turtle.fillcolor("yellow") #fillcolor為黃色
turtle.color("purple")     #color為紫色
turtle.circle(40, steps=5)
turtle.end_fill()          #填充結束

turtle.penup()
turtle.goto(200, -50)
turtle.pendown()
turtle.begin_fill()        #開始填充
turtle.color("yellow")     #color為黃色
turtle.fillcolor("green")  #fillcolor為綠色
turtle.circle(40, steps=6)
turtle.end_fill()          #填充結束

turtle.color("blue")
turtle.penup()
turtle.goto(-50, 100)
turtle.pendown()
turtle.write("Colorful Shapes", font = ("Times", 18, "bold"))

#隱藏箭頭
turtle.hideturtle()
#暫停介面,使得使用者能夠看見展示的圖形
turtle.done()

執行結果:


  • turtle.begin_fill():在填充圖形前訪問這個方法
  • turtle.end_fill():在最後呼叫begin_fill之前填充繪製的圖形
  • turtle.color(c):設定筆的顏色
  • turtle.fillcolor(c):設定筆填充顏色

所以:

在begin_fill()和end_fill()之間設定的turtle.color(c)turtle.fillcolor(c)都可以作為填充色,例如黑色的圓。

turtle.color(c)提到前面,不寫begin_fill()和end_fill(),則就不會實現填充,例如紅邊的三角形。

turtle.color(c)提到前面,並在begin_fill()和end_fill()之間設定turtle.fillcolor(c),那麼圖形的邊框和內部填充顏色分別對應於color和fillcolor,例如紫邊框灰色四邊形。

在begin_fill()和end_fill()之間設定不同的turtle.color(c)turtle.fillcolor(c),則以排序在後面的為準去填充圖形,例如紫色五邊形和黃邊框綠色六邊形。五邊形的程式碼是先fillcolor黃色,然後color紫色覆蓋,所以最終填充為紫色。六邊形是先color黃色,這樣就應該預設用黃色去填充,結果後面接著fillcolor綠色,所以最終填充為綠色。

所以,我上面的猜想不是很正確,剛處於學習階段,有些思考還不到位~~~~~~


相關推薦

Turtle繪製顏色字型圖形Python3

在Python中有很多編寫圖形程式的方法,一個簡單的啟動圖形化程式設計的方法是使用Python內嵌的Turtle模組。Turtle是Python內嵌的繪製線、圓以及其他形狀(包括文字)的圖形模組。它

IOS_設定UITableView Section的背景顏色字型顏色自定義section佈局

section所顯示的灰色背景和白色字型是預設的,呼叫以下方法即可實現- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { ret

微信小程式點選移除新增class點選改變背景顏色字型顏色

微信小程式不允許DOM操作,所以不能用addClass這種方法,我的用法如下。 點選元素後,獲取元素中data-select值,賦值給catalogSelect,然後判斷二者是否相等,一樣則新增class(class的css可以先寫好)。

改變狀態列背景顏色字型顏色解決因設定白色背景導致系統預設白色字型看不見問題

因為只有6.0以上的系統才支援狀態列字型顏色的設定,6.0一下的部分手機可通過修改系統原始碼來進行設定如小米,魅族。import android.annotation.TargetApi; import android.app.Activity; import android

PHP- 如何在終端輸出顏色字型

轉自: http://www.neatstudio.com/show-2568-1.shtml   終端顯示顏色,在以前的想法當中,都是因為有了.profile的配色方案。而我一般也都是 採用預設的(snakevil是寫過一個bash帶顏色的方案的。我覺得太花哨了就沒有使用) 為什麼

使用 Win2D 繪製圖片紋理的圓或橢圓

使用 Win2D 繪製圖片和繪製橢圓都非常容易,可是如何使用 Win2D 繪製圖片紋理的橢圓呢? 本文內容 重力迷宮小球 Win2D 實現 關於 CanvasCommandList

ios 狀態列statusBar的背景顏色字型顏色設定

假如我想讓狀態列顏色設定成紅色,字型仍為黑色,可以在需要顯示的那一頁進行如下設定:(最好寫在viewWillAppear裡面) //設定狀態列顏色 - (void)setStatusBarBackgroundColor:(UIColor *)color { UIView *

opengl使用glDrawElements繪製圖形IBO

glDrawElements為Opengl圖元繪製函式 函式原型為: void glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); 其中: mode指定繪製

Ext.Net 1.x_Ext.Net_修改grid行或者列的背景顏色字型顏色

修改某一列的背景顏色和字型顏色 css程式碼 .x-grid-back-red { background: #FF0000; //修改背景顏色 color:#000000; //修改字型顏色 } JS程式碼 { header : '分成型

WPF整理-使用使用者選擇主題的顏色字型

“Sometimes it's useful to use one of the selected colors or fonts the user has chosen in theWindows Control Panel Personalization applet (or the older Disp

圖形介面程式設計 分組容器卡片容器1

——本節介紹瞭如何使用分組容器(GroupBox)以及一個分組RadioButton的例項 1 分組容器 GroupBox容器使用起來就和一個基本的Panel容器一樣,它不具備佈局管理功能,僅僅是一個可以容納其它控制元件的容器。 Grou

linux終端配置:顏色字型

  linux下的終端視窗,初始的是白底黑字,看久了很容易傷眼睛,建議使用這種黑底綠字,親身體會,這種比黑底白字也要服眼一些,看起來也比較高大上。      具體設定如下,先開啟終端(右鍵,open

Pyqt5:Qpainter繪製基礎圖形:滑鼠拖畫

接著上文:繪製基礎圖形函式已經全部清楚,然後進階滑鼠拖畫。 滑鼠拖畫,需要用到滑鼠事件 滑鼠事件: 與C++Qt一樣,滑鼠事件,需要過載滑鼠事件函式如下: def mousePressEvent(self, e): print("滑鼠按下

立體畫素畫:Obelisk.js繪製等軸透視立體圖形Isometric Graphics 作者:Alex Young

(圖片說明:Obelisk.js現有的全套5種原型圖形(Brick、Cube、SideY、SideX與Pyramid)以及上色後的效果,未來將會有更多的isometric原型圖加入到引擎中。) 在建立等軸圖形(Isometric Graphics)的時候,由Max

xshell護眼顏色字型

[護眼色] text=000000 cyan(bold)=000000 text(bold)=000000 magenta=000000 green=000000 green(bold)=000000 background=c7edcc cyan=000000 red(bol

LeiQ手把手你搭部落格——整體結構及VPS域名的購買與解析

I WANT MY OWN BLOG! 看到這篇文章,你應該也是抱著這個念頭來的吧? 來都來了,不會讓你空手而歸的! 前言 其實博主搭建個人部落格以及寫這篇文章純粹是死逼著自己出於喜好 原本是為了註冊一個外國的app賬號,是的你沒有看錯!起因與部落格

[QT]QT教程之例項分析[一]檔案 顏色字型對話方塊

重點知識已近在程式碼裡註釋... 請仔細看程式碼 本文原創 標頭檔案 standardialog .h #ifndef STANDARDIALOG_H #define STANDARDIALOG_H #include <QObject> #include <

swift 設定navigationBar的背景顏色字型顏色

設定navigationBar中的背景顏色、字型顏色、字型大小。 在appdelegate檔案中 1、設定背景顏色:           UINavigationBar.appearance().barTintColor = UIColor(red: 0.0/255.0,

C# 中,ListView的自定義顯示,可用於顯示不同的顏色字型

VS2010下的ListView控制元件,想用它來顯示不同的顏色單元格,在網上找了listView1.Items[i].UseItemStyleForSubItems = false;的方法,但是不知道為何不起作用, 所以又搜尋了OwnDraw的方法,本來以為很複雜,但後來

word中字型大小pt網頁中css設定font-size時用的px大小對應關係

pt與px轉換關係為 1px= 0.75pt。 所以word中五號字型(10.5pt)在網頁中對應的大小為font-size:14px。(10.5 / 0.75 = 14) 初號44pt 小初36pt 一號26pt 小一24pt 二號22pt 小二18pt 三號16pt 小