欧美三级电影完整|亚洲一二三四久久|性爱视频精品一区二区免费在线观看|国产精品啪啪视频|婷婷六月综合操人妻视频网站|99爱免费视频在线观看|美女一级片在线观看|北京熟女88av|免费看黄色A级电影|欧美黄色毛片儿

不要給糖果制造麻煩,用Python繪制有趣的萬(wàn)圣節(jié)南瓜怪物

2023-05-21



















關(guān)于萬(wàn)圣節(jié)






萬(wàn)圣節(jié)又稱(chēng)諸圣節(jié),是每年11月1日的西方傳統(tǒng)節(jié)日。萬(wàn)圣節(jié)前夕的10月31日是這個(gè)節(jié)日最熱鬧的時(shí)刻。在漢語(yǔ)中,萬(wàn)圣節(jié)前夕經(jīng)常被用來(lái)(Halloween)被解讀為萬(wàn)圣節(jié)(All Saints' Day)。


為了慶祝萬(wàn)圣節(jié)的到來(lái),孩子們會(huì)打扮成各種可愛(ài)的鬼魂,一個(gè)接一個(gè)地敲門(mén),要求得到糖果,否則他們會(huì)制造麻煩。與此同時(shí),據(jù)說(shuō)在這個(gè)晚上,各種各樣的鬼魂也會(huì)打扮成孩子們一起慶祝萬(wàn)圣節(jié)的到來(lái),人類(lèi)會(huì)打扮成各種各樣的鬼魂,以使鬼魂更加和諧。



不知道什么時(shí)候,西方的節(jié)日一個(gè)個(gè)進(jìn)入了中國(guó),比如情人節(jié)、圣誕節(jié)、感恩節(jié)、萬(wàn)圣節(jié)...對(duì)于那些整天只知道上網(wǎng)的大學(xué)生來(lái)說(shuō),萬(wàn)圣節(jié)的熟悉自然來(lái)自于游戲!比如wow






魔獸世界




再或者MapleStory







冒險(xiǎn)島




無(wú)論是魔獸世界帖子的發(fā)布時(shí)間,還是這個(gè)老式的2D冒險(xiǎn)島游戲,都代表著我們80后的時(shí)代已經(jīng)過(guò)去…








萬(wàn)圣節(jié)和Python






最近因?yàn)楣ぷ髅?,?huì)轉(zhuǎn)載一些大佬的優(yōu)秀文章。今天,我有一些時(shí)間想寫(xiě)點(diǎn)什么??斓饺f(wàn)圣節(jié)了。既然我們堅(jiān)持python的學(xué)習(xí)態(tài)度,不如用Python畫(huà)一個(gè)萬(wàn)圣節(jié)標(biāo)志。------南瓜怪吧!


提到python制圖,難免會(huì)提到turtle模塊,小海龜就是python中最熱門(mén)的制圖模塊,雖然它的作用無(wú)法與專(zhuān)業(yè)的制圖工具相比,但還是可以畫(huà)出一些簡(jiǎn)筆畫(huà)。之所以說(shuō)turtle只能畫(huà)一些簡(jiǎn)筆畫(huà),主要是因?yàn)閷W(xué)習(xí)技巧太淺薄,無(wú)法用它來(lái)做出高大的作品。另外一個(gè)原因當(dāng)然是我在制圖方面沒(méi)有天賦,從小藝術(shù)就不及格啊!但是為了回應(yīng)情況,還是咬緊牙關(guān)去編碼吧!








模塊turtle






首先,python的turtle庫(kù)還是小甲魚(yú)的。【Python零基礎(chǔ)入門(mén)學(xué)習(xí)】我已經(jīng)很久沒(méi)用了,有點(diǎn)生疏。讓我們帶你回顧一下模塊的使用。如果你想努力學(xué)習(xí)這個(gè)數(shù)據(jù)庫(kù),建議去官網(wǎng)仔細(xì)看看相關(guān)內(nèi)容:https://docs.python.org/3.7/library/turtle.html但是如果你只是像我一樣從娛樂(lè)開(kāi)始,你只需要幾分鐘就可以開(kāi)始繪畫(huà)。在這里,我為大家整理了一些常用的方法:


參數(shù)


表明


turtle.setup(width,height,startx,starty)


起點(diǎn)坐標(biāo):與屏幕的坐標(biāo)相比,左上角默認(rèn)位于屏幕中央。


turtle.bgpic('xxx.png')


將背景圖片添加到畫(huà)板上(記得使用png,jpg不支持)


turtle.begin_fill()


準(zhǔn)備開(kāi)始添加圖形


turtle.end_fill()


添充完成


turtle.goto(x,y)


把烏龜帶到坐標(biāo)位置 絕對(duì)坐標(biāo)


turtle.bk(d)


海龜?shù)雇?海龜坐標(biāo)


turtle.fd(d)


海龜前行


turtle.circle(r,extent,steps)


extent范圍(360為一圈),setps感覺(jué)空虛,表示正圓,數(shù)字表示邊數(shù)。


turtle.seth(angle)


烏龜變成了絕對(duì)的坐標(biāo)


turtle.left(angle)


左轉(zhuǎn)


turtle.right(angle)


右轉(zhuǎn)


penup()


抬起畫(huà)筆


pendown()


落下畫(huà)筆


pencolor()


筆的顏色


pensize()


筆的大小


turtle.colormode(mode)


改變RGB模式,mode=1.0小數(shù)值,mode=255整數(shù)值 RGB顏色,例如white的RGB總值為:255.255.255,修改數(shù)值可改變顏色。


turtle.done()


畫(huà)完后不要關(guān)窗


以上這些內(nèi)容,已經(jīng)完全夠大家強(qiáng)裝13了…








百鳥(niǎo)朝鳳圖






中國(guó)每天晚上的新聞聯(lián)播節(jié)目結(jié)束時(shí),總會(huì)播放主持人收到稿件的場(chǎng)景。為了告訴觀(guān)眾朋友,主持人說(shuō)新(段)聞(子)已經(jīng)寫(xiě)好了!既然要畫(huà)南瓜怪,就得先打草稿!


每個(gè)人都記得星爺唐伯虎點(diǎn)秋香中國(guó),祝枝山一對(duì)百鳥(niǎo)向鳳圖(小雞吃米圖)至今給人留下深刻印象。所以今天,讓IT界的王伯虎給你帶來(lái)以下畫(huà)軸,名字:這南瓜有點(diǎn)冷


不知這幅畫(huà)會(huì)吸引多少粉絲來(lái)取關(guān),沒(méi)辦法他們一定是嫉妒我的才華!







祝枝山在IT界








實(shí)現(xiàn)turtle代碼代碼






第一,為了達(dá)到遮蓋畫(huà)功拙劣的效果,我們應(yīng)該在制圖之前,先選擇一幅略顯美觀(guān)的背景圖,比如:






背景圖南瓜怪




因?yàn)槟瞎喜皇钦龍A,所以我們應(yīng)該畫(huà)橢圓來(lái)達(dá)到效果。在我剛剛學(xué)習(xí)的內(nèi)容中,有一個(gè)turtle.circle(r,extent,steps)方法,其中steps參數(shù)值得我們重點(diǎn)分析,首先要看一段代碼:


1# -*- coding: utf-8 -*-
 2# @Author   : 王翔
 3# @微信號(hào)   : King_Uranus
 4# @公眾號(hào)   : Python清風(fēng)
 5# @GitHub   : https://github.com/BreezePython
 6# @Date     : 2019/10/30 22:31
 7# @Software : PyCharm
 8# @version  :Python 3.7.3
 9# @File     : circle.py
10
11import turtle as t
12
13for i in range(3, 10, 2):
14    t.circle(100, steps=i)
15    t.left(90)
16
17t.circle(100, steps=30)
18
19for i in range(30):     # 重復(fù)執(zhí)行i次
20    t.forward(20.93)    # 移動(dòng)x個(gè)單位
21    t.left(12)          # 左轉(zhuǎn)y度
22
23t.done()

效果如下:






steps參數(shù)在circle中




事實(shí)上,steps參數(shù)可以理解為多邊形的邊數(shù)和邊數(shù),所以邊數(shù)越多(30邊形),在我們眼里,圖形是否趨近和圓潤(rùn)?然后拆分思考,具體的實(shí)現(xiàn)能不能理解為畫(huà)筆畫(huà)一條直線(xiàn),然后轉(zhuǎn)動(dòng)視角,再畫(huà)一條直線(xiàn),這樣往復(fù),最后轉(zhuǎn)360度,形成一個(gè)圖形。同樣如下:


有些朋友會(huì)問(wèn)1.74是從哪里來(lái)的?C = 2πr = 628628/360 = 1.7444… 所以每個(gè)度的邊長(zhǎng)是1.74。



1import turtle as t
2
3for i in range(360):    # 重復(fù)執(zhí)行i次
4    t.forward(1.74)     # 移動(dòng)x個(gè)單位
5    t.left(1)           # 偏移弧度
6
7t.circle(100)





圓繪圖分析




知道了這一點(diǎn),下來(lái)就要考慮怎么畫(huà)橢圓了。之所以是圓,是因?yàn)槊窟叾家粯?,所以如果每邊都不一樣,?huì)不會(huì)造成橢圓效果?現(xiàn)在我們用這種方式畫(huà)南瓜形狀:


1import turtle as t
 2
 3t.speed(10)
 4t.pensize(6)
 5t.hideturtle()
 6t.screensize()
 7t.bgcolor('black')
 8t.bgpic('dark_night.png')
 9t.color('#CF5E1A', '#CF5E1A')
10
11#  繪制南瓜
12t.penup()
13t.goto(250, 30)
14t.pendown()
15t.seth(90)
16t.begin_fill()
17for j in range(25):
18    t.fd(j)
19    t.left(3.6)
20for j in range(25, 0, -1):
21    t.fd(j)
22    t.left(3.6)
23t.seth(-90)
24t.circle(254, 180)
25t.end_fill()
26
27t.done()






南瓜外形




南瓜把兒比較簡(jiǎn)單,只需將畫(huà)筆調(diào)粗,然后畫(huà)一段弧度即可。雙眼處理方法與南瓜頂蓋相似,不再贅述。








最后效果








最后效果圖




總體代碼:


1# -*- coding: utf-8 -*-
  2# @Author   : 王翔
  3# @WeChat   : King_Uranus
  4# @公眾號(hào)    : Python清風(fēng)
  5# @GitHub   : https://github.com/BreezePython
  6# @Date     : 2019/10/29 22:30
  7# @Software : PyCharm
  8# @version  :Python 3.7.3
  9# @File     : PumpkinMonster.py
 10
 11
 12import turtle as t
 13
 14
 15def init():
 16    # 初始化
 17    t.bgpic('dark_night.png')
 18    t.screensize(500, 500, bg='white')
 19    t.speed(10)
 20    t.hideturtle()
 21    t.bgcolor('black')
 22    t.bgpic('dark_night.png')
 23
 24
 25def outline():
 26    #  畫(huà)出南瓜的輪廓
 27    t.color('#CF5E1A', '#CF5E1A')
 28    t.penup()
 29    t.goto(250, 30)
 30    t.pendown()
 31    t.seth(90)
 32    t.begin_fill()
 33    for j in range(25):
 34        t.fd(j)
 35        t.left(3.6)
 36    for j in range(25, 0, -1):
 37        t.fd(j)
 38        t.left(3.6)
 39    t.seth(-90)
 40    t.circle(254, 180)
 41    t.end_fill()
 42
 43
 44def tail():
 45    # 繪制南瓜枝
 46    t.penup()
 47    t.goto(0, 180)
 48    t.pendown()
 49    t.color(#2E3C01')
 50    t.seth(100)
 51    t.pensize(25)
 52    t.circle(60, 100)
 53
 54
 55def eyes(args):
 56    # 雙眼
 57    for items in args:
 58        position, angle, direction = items
 59        t.pensize(6)
 60        t.penup()
 61        t.goto(position, 0)
 62        t.pendown()
 63        t.color(#4C180D', #4C180D'
 64        t.begin_fill()
 65        t.seth(angle)
 66        for j in range(55):
 67            t.fd(3)
 68            if direction:
 69                t.left(3)  # 左轉(zhuǎn)3度
 70            else:
 71                t.right(3)  # 左轉(zhuǎn)3度
 72        t.goto(position, 0)
 73        t.end_fill()
 74
 75
 76def nose():
 77    # 鼻子
 78    t.penup()
 79    t.goto(0, 0)
 80    t.seth(180)
 81    t.pendown()
 82    t.begin_fill()
 83    t.circle(50, steps=3)
 84    t.end_fill()
 85
 86
 87def mouth():
 88    # 嘴巴
 89    t.color('#F9D503', #F9D503'
 90    t.pensize(6)
 91    t.penup()
 92    t.penup()
 93    t.goto(-150, -100)
 94    t.pendown()
 95    t.begin_fill()
 96    t.seth(-30)
 97    t.fd(100)
 98    t.left(90)
 99    t.fd(30)
100    t.right(90)
101    t.fd(60)
102    t.left(60)
103    t.fd(60)
104    t.right(90)
105    t.fd(30)
106    t.left(90)
107    t.fd(100)
108    t.end_fill()
109    t.done()
110
111
112if __name__ == '__main__':
113    init()
114    outline()
115    tail()
116    eyes_items = [(-60, 230, 0), (60, -50, 1)]
117    eyes(eyes_items)
118    nose()
119    mouth()
120    t.done()





END





本文僅代表作者觀(guān)點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽?lái)源及作者名字。

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com