亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python繪圖模塊之利用turtle畫圖

 更新時間:2021年02月12日 11:14:14   作者:小常文  
這篇文章主要給大家介紹了關于python模塊教程之利用turtle畫圖的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

模塊之turtle

小故事

前兩天朋友說:“常文啊!聽說你會python,那能不能用python畫一些好看的圖呢?”然后我特意去學了一下turtle模塊,現(xiàn)在給大家分享一下。

一、什么是turtle

Turtle是python內嵌的繪制線、圓以及其他形狀(包括文本)的圖形模塊。

二、turtle函數(shù)的使用

import turtle

turtle.pendown() # 放下畫筆
turtle.penup() # 抬起畫筆
turtle.pensize(int) # 設置畫筆寬度,值為整數(shù)型
turtle.forward(float) # 講話比向前移動一定的角度
turtle.backward(float) # 將畫筆向后移動一定的角度
turtle.right(angle) # 將畫筆右轉一定的角度
turtle.left(angle) # #將畫筆左轉一定的角度
turtle.goto(x,y) # 將畫筆移動到一個指定的絕對坐標
turtle.setx(x) # 設置畫筆向x方向移動的距離,值為實數(shù)
turtle.sety(y) # 設置畫筆向y方向移動的距離,值為實數(shù)
turtle.setheading(angle) # 設定turtle箭頭的方向為指定方向,0–東 90—北
turtle.home() # 將畫筆返回到原點
turtle.circle(r,ext,steps=int) # 繪制一個設置半徑和階數(shù)的圓(設置之后會繪制多邊形)
turtle.dot(d,color) # 繪制一個指定直徑的圓點,顏色為字符串類型
turtle.undo() #取消最后一個圖操作
turtle.speed(s) # 設置畫筆速度,為整數(shù)類型,且取值在1-10之間
turtle.color(‘str') # 設置畫筆顏色,為字符串類型
turtle.fillcolor(‘str') # 設置填充顏色,為字符串類型
turtle.begin_fill() # 結束填充
turtle.end_fill() # 開始填充
turtle.filling() # 返回填充狀態(tài),True表示填充,F(xiàn)alse表示沒有填充
turtle.clear() # 清除窗口所有內容
turtle.reset() # 清除窗口,將狀態(tài)和位置復位為初始值
turtle.screensize(w,h) # 設置turtle顯示的大小,并設置寬度和高度
turtle.hideturtle() # 隱藏turtle箭頭
turtle.showturtle() # 顯示turtle窗口
turtle.done() # 使turtle窗口不會自動消失
turtle.isvisible() # 如果turtle可見,返回turtle
turtle.write(‘str',font=(“Arial”,8,“normal”)) # 在turtle位置編寫字符串s,字體由字體名、字體大小、字體類型三部分組成
turtle.position() # 獲取畫筆的坐標,返回一個元組,值為浮點型

案例一:基本使用

import turtle
import time


turtle.pensize(3)
turtle.showturtle() # 顯示箭頭
turtle.write("吳常文") # 寫字符串
turtle.forward(300) # 前進100像素
turtle.color("red") # 畫筆顏色改為red
turtle.left(90) # 箭頭左轉90度
turtle.forward(300)
turtle.goto(0,50) # 去坐標(0,50)
turtle.goto(0,0) # 回到原點
turtle.penup() # 抬筆,這樣路徑向上
turtle.goto(0,300)
turtle.goto(0,0)
turtle.pendown() # 下筆,這樣路徑向下
turtle.goto(0,50)
turtle.goto(50,50)
turtle.circle(100) # 畫圓


time.sleep(5) # 睡5秒

效果圖1:

在這里插入圖片描述

案例二:五角星

import turtle
import time

turtle.pensize(5)
turtle.pencolor("yellow")
turtle.fillcolor("red")

turtle.begin_fill()
for _ in range(5):
 turtle.forward(200)
 turtle.right(144)
turtle.end_fill()
time.sleep(2)

turtle.penup()
turtle.goto(-150, -120)
turtle.color("violet")
turtle.write("五角星", font=('Arial', 22, 'normal'))

turtle.mainloop()

效果圖2:

五角星

案例三:奧運五環(huán)

#!/user/bin/python3
# --*--coding: utf-8 --*--
# @Time: 2021/2/10 12:22
# @Author:吳常文
# @File: 03奧運五環(huán)


import turtle
import time


turtle.width(10) # 寬度

turtle.color("red")
turtle.circle(50)

turtle.color("blue")
turtle.penup()
turtle.goto(120,0)
turtle.pendown()
turtle.circle(50)


turtle.color("black")
turtle.penup()
turtle.goto(240,0)
turtle.pendown()
turtle.circle(50)


turtle.color("yellow")
turtle.penup()
turtle.goto(60,-50)
turtle.pendown()
turtle.circle(50)


turtle.color("green")
turtle.penup()
turtle.goto(180,-50)
turtle.pendown()
turtle.circle(50)

time.sleep(3)

效果圖3:

奧運五環(huán)

案例四:給你一朵玫瑰花

import turtle
import time

# 設置初始位置 
turtle.penup()
turtle.left(90)
turtle.fd(200)
turtle.pendown()
turtle.right(90)

# 花蕊 
turtle.fillcolor("red")
turtle.begin_fill()
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill()

# 花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)

# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)

# 葉子1 
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()

turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.left(90)
turtle.fd(80)

# 葉子2
turtle.right(90)
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()

turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(60)
turtle.right(90)

turtle.circle(200, 60)

turtle.up()
turtle.goto(100, -300)
turtle.write("Send you a flower, bring you home")
time.sleep(5)

效果圖4:

玫瑰花

案例五:愛心樹

#!/user/bin/python3
# --*--coding: utf-8 --*--
# @Time: 2021/2/10 21:56
# @Author:吳常文
# @File: 05 愛心樹


from turtle import Turtle, mainloop
import turtle


def tree(plist, l, a, f):
 """ plist是筆的列表
 l是分支
 a的長度是兩個分支之間夾角的一半
 f是分支之間逐級縮短的系數(shù)。"""
 if l > 5: #
  lst = []
  for p in plist:
   p.forward(
    l) # 沿著當前的方向畫畫按照海龜前進的方向,向前移動指定的距離。
   q = p.clone() # 創(chuàng)建并返回具有相同位置、標題和turtle屬性的海龜?shù)目寺 ?
   p.left(a) # 以角度單位將海龜向左翻轉
   q.right(
    a) # 以角度單位將海龜右轉,nit是默認的角度,但可以通過degrees()和radians()函數(shù)設置。
   lst.append(p) # 將元素增加到列表的最后
   lst.append(q)
  tree(lst, l * f, a, f)


def main():
 p = Turtle()
 p.color("red")
 p.pensize(4)
 # p.setundobuffer(None)
 p.hideturtle() # 讓烏龜隱形。這是一個好主意,當你在做一些復雜的繪圖時,
 # 因為把烏龜藏起來能明顯加快繪圖速度。
 # p.speed(10)
 # p.getscreen().tracer(1,0)#Returtle.write("You are the secret of my heart")
 p.speed(4)
 # 然后可以為該對象調用TurtleScreen方法。
 p.left(90) # 方向以角度單位將海龜向左翻轉。 調整畫筆

 p.penup() # 向上拉筆——移動時不繪圖。
 p.goto(0,
   -200) # 移動海龜?shù)揭粋€絕對位置。如果筆放下了,畫一條線。不要改變海龜?shù)姆较颉?
 p.pendown() # 向下拉筆——移動時繪圖 這三條語句是一個組合相當于先把筆收起來再移動到指定位置,再把筆放下開始畫
 # 否則turtle一移動就會自動的把線畫出來

 # t = tree([p], 200, 65, 0.6375)
 t = tree([p], 200, 65, 0.6375)
 turtle.down()
 turtle.goto(-80, 70)

 turtle.write("There's a heart for you")
 turtle.done()


main()

效果圖5:

愛心樹

案例六:給你一顆愛心

#!/user/bin/python3
# --*--coding: utf-8 --*--
# @Time: 2021/2/10 22:07
# @Author:吳常文
# @File: 06 愛心

import turtle
import time


def func():
 for i in range(200):
  turtle.right(1)
  turtle.forward(1)


turtle.color('red', 'pink')
turtle.pensize(2)
turtle.speed(10)
turtle.goto(0, 0)
turtle.begin_fill()
turtle.left(140)

turtle.forward(112)
func()
turtle.left(120)
func()

turtle.forward(112)
turtle.end_fill()
turtle.pensize(5)
turtle.up()
turtle.goto(-80, 122.7)
turtle.left(70)
turtle.down()

# turtle.forward(0)
turtle.up()
turtle.goto(100, -10)
turtle.write("There's a heart for you")

turtle.done()
time.sleep(3)

效果圖6:

愛心

案例七:五星紅旗

import turtle as t


# 位移函數(shù)
def Skip(t,x,y):
 t.penup()
 t.goto(x,y)
 t.pendown()


# 繪制五星紅旗
def draw(t,x,y,z):
 t.begin_fill()
 for i in range(x):
  t.forward(y)
  t.left(z)
 t.end_fill()

# 畫筆基礎設置
t.screensize(1200,800)
t.pensize(5)
t.hideturtle()
t.speed(5)
t.pencolor("red")

# 畫筆移動
Skip(t,0,-200)

# 繪制國旗
t.fillcolor("red")
t.begin_fill()
t.forward(300)
t.left(90)
t.forward(400)
t.left(90)
t.forward(600)
t.left(90)
t.forward(400)
t.left(90)
t.forward(300)
t.end_fill()

# 畫筆移動
Skip(t,-250,115)

# 繪制大五角星
t.pencolor("yellow")
t.fillcolor("yellow")

t.begin_fill()
for i in range(5):
 t.forward(100)
 t.right(144)
t.end_fill()

"""第一顆副星"""
# 畫筆移動
Skip(t,-120,10)
# 繪制小五星
draw(t,5,30,144)


"""第二顆副星"""
# 畫筆移動
Skip(t,-80,50)
# 繪制小五星
draw(t,5,30,144)

"""第三顆副星"""
# 畫筆移動
Skip(t,-80,110)
# 繪制小五星
draw(t,5,30,144)

"""第四顆副星"""
# 畫筆移動
Skip(t,-120,150)
# 繪制小五星
draw(t,5,30,144)
t.done()

效果圖7:

五星紅旗

總結

到此這篇關于python模塊教程之利用turtle畫圖的文章就介紹到這了,更多相關python模塊之turtle畫圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python安裝以及IDE的配置教程

    python安裝以及IDE的配置教程

    Python在Linux、windows、Mac os等操作系統(tǒng)下都有相應的版本,不管在什么操作系統(tǒng)下,它都能夠正常工作。除非使用平臺相關功能,或特定平臺的程序庫,否則可以跨平臺使用。今天我們主要來探討下windows系統(tǒng)下的安裝與配置
    2015-04-04
  • 對python 自定義協(xié)議的方法詳解

    對python 自定義協(xié)議的方法詳解

    今天小編就為大家分享一篇對python 自定義協(xié)議的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python中繪制折線圖的全面指南(非常詳細!)

    Python中繪制折線圖的全面指南(非常詳細!)

    對于數(shù)據(jù)而言一般都會使用折線圖反映數(shù)據(jù)背后的趨勢,下面這篇文章主要給大家介紹了關于Python中繪制折線的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • Python 十六進制整數(shù)與ASCii編碼字符串相互轉換方法

    Python 十六進制整數(shù)與ASCii編碼字符串相互轉換方法

    今天小編就為大家分享一篇Python 十六進制整數(shù)與ASCii編碼字符串相互轉換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 用Python的pandas框架操作Excel文件中的數(shù)據(jù)教程

    用Python的pandas框架操作Excel文件中的數(shù)據(jù)教程

    這篇文章主要介紹了用Python的pandas框架操作Excel文件中的數(shù)據(jù)教程,包括單位格式轉換、分類匯總等基本操作,需要的朋友可以參考下
    2015-03-03
  • python實現(xiàn)自動登錄人人網(wǎng)并訪問最近來訪者實例

    python實現(xiàn)自動登錄人人網(wǎng)并訪問最近來訪者實例

    這篇文章主要介紹了python實現(xiàn)自動登錄人人網(wǎng)并訪問最近來訪者實例,該實例是在前面登錄人人網(wǎng)實例基礎上的擴展,是非常實用的一個技巧,需要的朋友可以參考下
    2014-09-09
  • 將Django使用的數(shù)據(jù)庫從MySQL遷移到PostgreSQL的教程

    將Django使用的數(shù)據(jù)庫從MySQL遷移到PostgreSQL的教程

    這篇文章主要介紹了將Django使用的數(shù)據(jù)庫從MySQL遷移到PostgreSQL的教程,同時提到了一些注意事項,需要的朋友可以參考下
    2015-04-04
  • Django前端BootCSS實現(xiàn)分頁的方法

    Django前端BootCSS實現(xiàn)分頁的方法

    本文主要介紹了Django前端BootCSS實現(xiàn)分頁的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Python數(shù)據(jù)結構詳細

    Python數(shù)據(jù)結構詳細

    本文將詳細講解Python的數(shù)據(jù)結構,下面我們將講解Python關于關于列表更多的內容以及del 語句和元組和序列等一些具體內容,需要的下伙伴可以參考一下
    2021-09-09
  • python 第三方庫paramiko的常用方式

    python 第三方庫paramiko的常用方式

    這篇文章主要介紹了python 第三方庫paramiko的常用方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論