免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
用Python標(biāo)準(zhǔn)庫(kù)turtle畫一頭金牛,祝您新年牛氣沖天?。ǜ皆创a)



今年是牛年,祝大家新年牛氣沖天!嗨皮牛Year!

前幾天在百度圖片里下載了一張金牛的圖片,就是封面的這張。想著用Python標(biāo)準(zhǔn)庫(kù)turtle肯定可以畫出這張圖,所以說(shuō)干就干,花兩天時(shí)間實(shí)現(xiàn)了。

畫圖雖然不是Python的主要功能,但繪制這頭金牛還是展示了Python無(wú)所不能的強(qiáng)大屬性。接下來(lái)介紹實(shí)現(xiàn)的過(guò)程。

圖片分析

初看圖片,深紅色的背景下,一頭金光閃閃的金牛。簡(jiǎn)單分析,圖形主要分為兩大部分,外面的圓環(huán)和內(nèi)部的金牛。

圓環(huán)由同心圓和折線形的圓盤構(gòu)成,同心圓直接畫圓就可以,折線形的圓盤是旋轉(zhuǎn)對(duì)稱的,每一個(gè)部分由圓弧和半徑方向的線組成,一共有26個(gè)相同的部分,計(jì)算出每個(gè)部分的弧形比例即可依次繪制。

金牛圖形是不規(guī)則的,里面有很多不同弧度和不同長(zhǎng)度的不規(guī)則曲線,控制畫筆邊前進(jìn)邊旋轉(zhuǎn),每次前進(jìn)不同的距離和旋轉(zhuǎn)不同的角度,可以繪制出這些曲線。里面的圖案,如五瓣花就是用這種方式完成。

對(duì)圖形有了基本的了解,就看turtle中有哪些方法可以用于實(shí)現(xiàn)這些操作了。

用到的Turtle方法介紹

turtle是Python的標(biāo)準(zhǔn)庫(kù),直接導(dǎo)入即可使用。

from turtle import *

1. 畫布設(shè)置

setup(width, height, x, y): 設(shè)置窗口大小和窗口左上角在屏幕中的位置。

title(): 設(shè)置窗口的標(biāo)題。

screensize(width, height, color): 設(shè)置畫布大小,背景顏色。

done(): 繪圖結(jié)束后,不自動(dòng)關(guān)閉窗口。

2. 畫筆設(shè)置

pencolor(color): 設(shè)置畫筆顏色

penup(): 提起畫筆,提起后移動(dòng)畫筆不會(huì)留下痕跡。

pendown(): 落下畫筆,開(kāi)始繪圖前先將畫筆落下。

speed(int): 設(shè)置畫筆的速度,傳入1~10的數(shù)字,1最慢,10最快。傳入其他值會(huì)更快,但是沒(méi)有鼠標(biāo)移動(dòng)的動(dòng)畫效果。

setx(value): 設(shè)置畫筆的x軸坐標(biāo)。

sety(value): 設(shè)置畫筆的y軸坐標(biāo)。

towards(x, y): 設(shè)置畫筆指向的點(diǎn)。

setheading(): 設(shè)置畫筆的方向。與towards()配合可以設(shè)置畫筆指向某個(gè)點(diǎn),如setheading(towards(0, 0))可以設(shè)置畫筆指向原點(diǎn)。

3. 畫筆操作

circle(radius[, extent=arc]): 畫一個(gè)圓,傳入圓的半徑,根據(jù)畫筆的方向控制圓心的位置,圓心與畫筆的方向垂直。傳入弧度值可以畫出指定弧度的圓弧。

left(angle): 畫筆左轉(zhuǎn),傳入任意一個(gè)目標(biāo)角度。

right(angle): 畫筆右轉(zhuǎn)。

forward(distance): 畫筆前進(jìn)一段距離。

backward(distance): 畫筆后退一段距離。

goto(x, y): 移動(dòng)畫筆到指定坐標(biāo)。

4. 顏色填充

begin_fill(): 開(kāi)始填充。

fillcolor(color): 設(shè)置圖形中填充的顏色。

end_fill(): 結(jié)束填充。

有了這些方法,就可以實(shí)現(xiàn)金牛圖中的各種圖案了。如畫五瓣花輪廓的代碼如下:

def draw_flower(a, color):    pencolor('red')    begin_fill()for j in range(5):for i in range(40):if 0 <= i < 20:                a = a - 0.08else:                a = a + 0.08            forward(a)            left(6)        right(168)    fillcolor(color)    end_fill()

實(shí)現(xiàn)舉例

我的繪圖順序是從外到內(nèi),這樣較小的圖形會(huì)置于較大的圖形之上,填充的顏色不會(huì)被遮擋。

最開(kāi)始繪制的是外圍的同心圓。先penup()提起畫筆,sety()將畫筆從圓心向下移動(dòng)半徑的距離,然后調(diào)整畫筆方向,pendown()落下畫筆,circle()畫圓。

整個(gè)過(guò)程分了很多張截圖,為了避免篇幅過(guò)長(zhǎng),就不全部放了。再放一張最后畫眼睛的動(dòng)圖,可以參照上面同心圓的方式拆分步驟。


其他的圖案,如果會(huì)相互覆蓋,要先畫大的圖形,再畫小的圖形。如果不會(huì)相互覆蓋,順序可以隨意調(diào)整。

總結(jié)


對(duì)比原圖和turtle繪制的圖形,整體上還是很像的,但部分細(xì)節(jié)并沒(méi)有完全還原。因?yàn)闆](méi)有原圖的任何參數(shù),繪制過(guò)程中全靠目測(cè)(像素尺子),很難避免誤差,再花一些時(shí)間調(diào)試應(yīng)該可以更像。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python turtle模塊中常用方法
Python|心型的繪制
python可以玩的海龜(turtle)畫圖軟件
18張金牛圖,張張牛氣沖天!
2021金牛送福《牛氣沖天》16首
Python 之 turtle 畫 037——五子棋
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服