最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

想學(xué)畫畫?python滿足你!

 更新時(shí)間:2020年12月24日 16:00:57   作者:python客棧  
這篇文章主要介紹了如何利用python畫畫,幫助大家更好的理解和使用python的turtle庫,感興趣的朋友可以了解下

python中的繪圖工具有不少,比如Matplotlib等等,但這些只能用來畫表格,今天我們來介紹一款可以用來畫畫的庫——turtle。

一、繪圖原理

我們通過控制初始位置為(0,0)的海龜進(jìn)行移動(dòng),根據(jù)一組函數(shù)指令的控制,在平面坐標(biāo)系中移動(dòng),從而在它爬行的路徑上繪制了圖形。

二、開始繪圖

turtle是python自帶的庫,我們直接import導(dǎo)入即可

import turtle

設(shè)置繪圖區(qū)域?qū)傩?/h3>

繪圖區(qū)域背景色的設(shè)置

turtle.bgcolor('blue')

選擇想要的顏色即可

繪圖區(qū)域大小設(shè)置

turtle.setup(width=200,height=100)

參數(shù):

width, height: 

輸入寬和高為整數(shù)時(shí), 表示像素;

為小數(shù)時(shí), 表示占據(jù)電腦屏幕的比例。

畫筆繪制圖形

讓我們先簡單的畫一條直線

turtle.forward(100)

forward()是turtle的內(nèi)置函數(shù),表示從原點(diǎn)向前進(jìn)多少距離。我們還可以控制畫筆的角度讓他轉(zhuǎn)彎。與之對(duì)應(yīng)的是backward(),后退多少距離

turtle.backward(100)
turtle.left(60)
turtle.forward(100)

這里的left()就表示畫筆的轉(zhuǎn)彎方向和角度了,相應(yīng)的right則為向右轉(zhuǎn)。

如圖我們后退了100的距離然后向左偏轉(zhuǎn)60°又前進(jìn)了100距離。其他常用參數(shù)請(qǐng)參考下面的表格

畫筆運(yùn)動(dòng)函數(shù)

函數(shù) 描述
turtle.forward(distance) 向當(dāng)前畫筆方向移動(dòng)distance像素長
turtle.backward(distance) 向當(dāng)前畫筆相反方向移動(dòng)distance像素長度
turtle.right(degree) 順時(shí)針移動(dòng)degree°
turtle.left(degree) 逆時(shí)針移動(dòng)degree°
turtle.pendown() 移動(dòng)時(shí)繪制圖形,缺省時(shí)也為繪制
turtle.goto(x,y) 將畫筆移動(dòng)到坐標(biāo)為x,y的位置
turtle.penup() 移動(dòng)時(shí)不繪制圖形,提起筆,用于另起一個(gè)地方繪制時(shí)用
turtle.speed(speed) 畫筆繪制的速度范圍[0,10]整數(shù)
turtle.circle() 畫圓,半徑為正(負(fù)),表示圓心在畫筆的左邊(右邊)畫圓

畫筆參數(shù)

命令 說明
turtle.pensize(width) 繪制圖形時(shí)的寬度
turtle.pencolor() 畫筆顏色
turtle.fillcolor(colorstring) 繪制圖形的填充顏色
turtle.color(color1, color2) 同時(shí)設(shè)置pencolor=color1, fillcolor=color2
turtle.filling() 返回當(dāng)前是否在填充狀態(tài)
turtle.begin_fill() 準(zhǔn)備開始填充圖形
turtle.end_fill() 填充完成;
turtle.hideturtle() 隱藏箭頭顯示;
turtle.showturtle() 與hideturtle()函數(shù)對(duì)應(yīng)

全局控制命令

命令 說明
turtle.clear() 清空turtle窗口,但是turtle的位置和狀態(tài)不會(huì)改變
turtle.reset() 清空窗口,重置turtle狀態(tài)為起始狀態(tài)
turtle.undo() 撤銷上一個(gè)turtle動(dòng)作
turtle.isvisible() 返回當(dāng)前turtle是否可見
stamp() 復(fù)制當(dāng)前圖形
turtle.write(s[,font=("font-name",font_size,"font_type")]) 寫文本,s為文本內(nèi)容,font是字體的參數(shù),里面分別為字體名稱,大小和類型;font為可選項(xiàng), font的參數(shù)也是可選項(xiàng)

三、for循環(huán)語句

如果我們要畫一個(gè)正方形按照上邊的方法代碼為

import turtle

turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)

一個(gè)簡單的四邊形就要如此重復(fù),繪制更復(fù)雜的圖形還這樣做的話就顯得不科學(xué)了,這時(shí)候我們就要用到for循環(huán)了。使用for循環(huán)的語句優(yōu)化過的代碼為

totalTimes=4                       
for times in range(totalTimes):
    turtle.forward(100)
    turtle.left(90)

四、簡單示例

繪制五角星

import turtle

t=turtle.Pen() #獲得畫筆
t.hideturtle() #隱藏箭頭
t.begin_fill() #填充圖形
for x in range(1, 6):
    t.forward(100)
    t.left(216) #在這里先向右直行,然后左轉(zhuǎn)216°(左下,正五角星度數(shù)180/5=36°)
t.end_fill() #填充完成

繪制櫻花樹

import turtle as T
import random
import time
 
# 畫櫻花的軀干(60,t)
def Tree(branch, t):
  time.sleep(0.0005)
  if branch > 3:
    if 8 <= branch <= 12:
      if random.randint(0, 2) == 0:
        t.color('snow') # 白
      else:
        t.color('lightcoral') # 淡珊瑚色
      t.pensize(branch / 3)
    elif branch < 8:
      if random.randint(0, 1) == 0:
        t.color('snow')
      else:
        t.color('lightcoral') # 淡珊瑚色
      t.pensize(branch / 2)
    else:
      t.color('sienna') # 赭(zhě)色
      t.pensize(branch / 10) # 6
    t.forward(branch)
    a = 1.5 * random.random()
    t.right(20 * a)
    b = 1.5 * random.random()
    Tree(branch - 10 * b, t)
    t.left(40 * a)
    Tree(branch - 10 * b, t)
    t.right(20 * a)
    t.up()
    t.backward(branch)
    t.down()
 
# 掉落的花瓣
def Petal(m, t):
  for i in range(m):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    t.up()
    t.forward(b)
    t.left(90)
    t.forward(a)
    t.down()
    t.color('lightcoral') # 淡珊瑚色
    t.circle(1)
    t.up()
    t.backward(a)
    t.right(90)
    t.backward(b)
 
# 繪圖區(qū)域
t = T.Turtle()
# 畫布大小
w = T.Screen()
t.hideturtle() # 隱藏畫筆
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat') # wheat小麥
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')
 
# 畫櫻花的軀干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()

更多關(guān)于python的文章,歡迎關(guān)注python客棧。

以上就是想學(xué)畫畫?python滿足你!的詳細(xì)內(nèi)容,更多關(guān)于python 畫畫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入解析Python中的lambda表達(dá)式的用法

    深入解析Python中的lambda表達(dá)式的用法

    這篇文章主要介紹了深入解析Python中的lambda表達(dá)式的用法,包括其與def之間的區(qū)別,需要的朋友可以參考下
    2015-08-08
  • Python中實(shí)現(xiàn)地圖可視化的方法小結(jié)

    Python中實(shí)現(xiàn)地圖可視化的方法小結(jié)

    Python提供了多個(gè)強(qiáng)大的庫,如Folium、Matplotlib、Geopandas等,使得創(chuàng)建漂亮而具有信息量的地圖變得簡單而靈活,本文將詳細(xì)介紹如何使用這些庫繪制漂亮的地圖,感興趣的可以了解下
    2023-12-12
  • python實(shí)現(xiàn)全排列代碼(回溯、深度優(yōu)先搜索)

    python實(shí)現(xiàn)全排列代碼(回溯、深度優(yōu)先搜索)

    今天小編就為大家分享一篇python實(shí)現(xiàn)全排列代碼(回溯、深度優(yōu)先搜索),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python中的日志文件按天分割

    python中的日志文件按天分割

    這篇文章主要介紹了python中的日志文件按天分割方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • pygame庫實(shí)現(xiàn)俄羅斯方塊小游戲

    pygame庫實(shí)現(xiàn)俄羅斯方塊小游戲

    這篇文章主要為大家詳細(xì)介紹了pygame庫實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)

    mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • django驗(yàn)證系統(tǒng)的具體使用

    django驗(yàn)證系統(tǒng)的具體使用

    本文主要介紹了django驗(yàn)證系統(tǒng)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python循環(huán)語句之while循環(huán)和for循環(huán)詳解

    Python循環(huán)語句之while循環(huán)和for循環(huán)詳解

    在Python中,循環(huán)語句用于重復(fù)執(zhí)行一段代碼,直到滿足某個(gè)條件為止,在Python中,有兩種主要的循環(huán)語句:for循環(huán)和while循環(huán),本文就來給大家介紹一下這兩個(gè)循環(huán)的用法,需要的朋友可以參考下
    2023-08-08
  • 解決python報(bào)錯(cuò)MemoryError的問題

    解決python報(bào)錯(cuò)MemoryError的問題

    今天小編就為大家分享一篇解決python報(bào)錯(cuò)MemoryError的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析的方法

    Python Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析的方法

    在上一篇講了幾個(gè)常用的“Pandas”函數(shù)之后,今天小編就為大家介紹一下在數(shù)據(jù)統(tǒng)計(jì)分析當(dāng)中經(jīng)常用到的“Pandas”函數(shù)方法,希望能對(duì)大家有所收獲,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

本溪市| 墨竹工卡县| 琼海市| 桐乡市| 杨浦区| 铜山县| 托克托县| 利辛县| 彰武县| 桐乡市| 岐山县| 芜湖县| 正安县| 兴城市| 四会市| 任丘市| 梅州市| 从江县| 台北市| 溧水县| 涡阳县| 潜山县| 宣城市| 邮箱| 大埔区| 榆社县| 曲麻莱县| 宝山区| 交城县| 晋江市| 新河县| 隆林| 泰州市| 维西| 时尚| 海兴县| 平南县| 武宣县| 禹城市| 格尔木市| 太白县|