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

利用Python繪制有趣的萬圣節(jié)南瓜怪效果

 更新時(shí)間:2019年10月31日 14:03:02   作者:王翔  
這篇文章主要介紹了用Python繪制有趣的萬圣節(jié)南瓜怪效果,本文實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

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

萬圣節(jié)又叫諸圣節(jié),在每年的11月1日,是西方的傳統(tǒng)節(jié)日;而萬圣節(jié)前夜的10月31日是這個(gè)節(jié)日最熱鬧的時(shí)刻。在中文里,常常把萬圣節(jié)前夜(Halloween)訛譯為萬圣節(jié)(All Saints' Day)。

為慶祝萬圣節(jié)的來臨,小孩會裝扮成各種可愛的鬼怪向逐家逐戶地敲門,要求獲得糖果,否則就會搗蛋。而同時(shí)傳說這一晚,各種鬼怪也會裝扮成小孩混入群眾之中一起慶祝萬圣節(jié)的來臨,而人類為了讓鬼怪更融洽才裝扮成各種鬼怪。

不知從何時(shí)開始,西方的節(jié)日一個(gè)個(gè)的走進(jìn)了天朝,情人節(jié)、圣誕節(jié)、感恩節(jié)、萬圣節(jié)…對于當(dāng)年我們那些整天只知道逃課上網(wǎng)的屌絲大學(xué)生來說,萬圣節(jié)的熟知,自然來源于游戲了!

比如wow:

 

魔獸世界

再或者M(jìn)apleStory:

 

冒險(xiǎn)島

不管是魔獸世界帖子的發(fā)布時(shí)間還是這老掉牙的2D冒險(xiǎn)島游戲,都代表屬于我們80后的時(shí)代過去了…

Python與萬圣節(jié)

最近由于工作比較忙,所以會轉(zhuǎn)載一些大佬們的優(yōu)秀文章。今天有些時(shí)間,想著寫點(diǎn)什么呢?快到萬圣節(jié)了既然秉承著寓教于樂的python學(xué)習(xí)態(tài)度,不如就用Python畫一個(gè)萬圣節(jié)標(biāo)志------南瓜怪吧!

說到python繪圖,免不了提及turtle模塊,小海龜算是python中炙手可熱的繪圖模塊了,雖然它的功能無法與專業(yè)繪圖工具相比,但還是可以畫一些簡筆畫。之所以說用turtle只能畫些簡筆畫,多半是因?yàn)槲业膶W(xué)習(xí)功底過于淺薄,沒辦法用它做出高大上的作品。當(dāng)然還有一個(gè)原因,就是我沒有繪圖這方面的天賦,從小美術(shù)就不及格啊!但為了應(yīng)景,還是硬著頭皮擼一段代碼吧!

turtle模塊

python的turtle庫,最早還是在小甲魚的【零基礎(chǔ)入門學(xué)習(xí)Python】中接觸的,好久沒用了有些生疏,先帶大家一起回顧下模塊的使用。

如果你是想認(rèn)真學(xué)習(xí)這個(gè)庫,推薦去官網(wǎng)仔細(xì)看看相關(guān)內(nèi)容:

https://docs.python.org/3.7/library/turtle.html

但如果你只是跟我一樣從娛樂出發(fā),那么你只需簡單的幾分鐘入門就可以開始作畫了。在這里,我?guī)痛蠹艺砹艘恍┏S玫姆椒ǎ?/p>

 

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

百鳥朝鳳圖

天朝每晚的新聞聯(lián)播節(jié)目結(jié)束,總會播放一下主持人收稿子的畫面。為了告訴觀眾朋友們,主持人說新(段)聞(子)是打過草稿的!那既然要畫南瓜怪,我也得先打打草稿了!

大家都記得星爺?shù)摹短撇Ⅻc(diǎn)秋香》中,祝枝山一副百鳥朝鳳圖(小雞吃米圖)至今給人留下深刻的印象。那么今天讓IT界的王伯虎為大家?guī)硪韵庐嬀?,名曰:這個(gè)南瓜有點(diǎn)冷

不知道這幅圖會引來多少粉絲取關(guān),沒辦法他們肯定是嫉妒我的才華!

 

IT界的祝枝山

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

首先,為了能起到遮蓋畫功低劣的效果,我們需要在繪圖前,先選則一張稍顯美觀的背景圖,比如這樣:

 

南瓜怪背景圖

下來由于南瓜不是一個(gè)正圓,我們需要畫出橢圓的實(shí)現(xiàn)效果。剛才學(xué)過的內(nèi)容中,有一個(gè)turtle.circle(r,extent,steps)的方法,其中steps參數(shù)值得我們?nèi)ブ攸c(diǎn)分析,先來看一段代碼:

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

效果如下:

 

circle中steps參數(shù)

steps參數(shù)其實(shí)大家可以理解為多邊形的邊數(shù)和,那么當(dāng)邊數(shù)越多(30邊形),在我們?nèi)庋劭磥硎欠駡D形就趨近與圓了?再拆分思考一下,具體的實(shí)現(xiàn)是否可以理解為,畫筆畫一段直線,然后旋轉(zhuǎn)一下角度,再畫直線,如此往復(fù),最終旋轉(zhuǎn)360度,組成一個(gè)圖形。同理如下:

有人朋友會問1.74是哪里來的?

C = 2πr = 628

628/360 = 1.7444… 所以每一度的邊長為1.74

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

圓繪圖分析

 

知道了這些,下來就該考慮如何畫橢圓了,之所以為圓,是由于各邊相等,那么如果各邊不等是否就會造成橢圓的效果,現(xiàn)在我們通過這種方式來畫南瓜外形:

import turtle as t 
t.speed(10) 
t.pensize(6) 
t.hideturtle() 
t.screensize() 
t.bgcolor('black') 
t.bgpic('dark_night.png') 
t.color('#CF5E1A', '#CF5E1A') 
# 繪制南瓜 
t.penup() 
t.goto(250, 30) 
t.pendown() 
t.seth(90) 
t.begin_fill() 
for j in range(25): 
 t.fd(j) 
 t.left(3.6) 
for j in range(25, 0, -1): 
 t.fd(j) 
 t.left(3.6) 
t.seth(-90) 
t.circle(254, 180) 
t.end_fill() 
t.done()

南瓜外形

 

南瓜把兒比較簡單,只需要把畫筆調(diào)粗,然后畫一段弧度即可。眼睛部分的處理方法與南瓜上蓋類似,不多贅述。

最終效果

最終效果圖

 

整體代碼:

# -*- coding: utf-8 -*- 
# @Author  : 王翔 
# @WeChat  : King_Uranus 
# @公眾號  : 清風(fēng)Python 
# @GitHub  : https://github.com/BreezePython 
# @Date   : 2019/10/29 22:30 
# @Software : PyCharm 
# @version :Python 3.7.3 
# @File   : PumpkinMonster.py 
import turtle as t 
def init(): 
# 初始化 
t.bgpic('dark_night.png') 
t.screensize(500, 500, bg='white') 
t.speed(10) 
t.hideturtle() 
t.bgcolor('black') 
t.bgpic('dark_night.png') 
def outline(): 
# 繪制南瓜輪廓 
t.color('#CF5E1A', '#CF5E1A') 
t.penup() 
t.goto(250, 30) 
t.pendown() 
t.seth(90) 
t.begin_fill() 
for j in range(25): 
  t.fd(j) 
  t.left(3.6) 
for j in range(25, 0, -1): 
  t.fd(j) 
  t.left(3.6) 
t.seth(-90) 
t.circle(254, 180) 
t.end_fill() 
def tail(): 
# 繪制南瓜枝 
t.penup() 
t.goto(0, 180) 
t.pendown() 
t.color('#2E3C01') 
t.seth(100) 
t.pensize(25) 
t.circle(60, 100) 
def eyes(args): 
# 眼睛 
for items in args: 
  position, angle, direction = items 
  t.pensize(6) 
  t.penup() 
  t.goto(position, 0) 
  t.pendown() 
  t.color('#4C180D', '#4C180D') 
  t.begin_fill() 
  t.seth(angle) 
  for j in range(55): 
    t.fd(3) 
    if direction: 
      t.left(3) # 左轉(zhuǎn)3度 
    else: 
      t.right(3) # 左轉(zhuǎn)3度 
  t.goto(position, 0) 
  t.end_fill() 
def nose(): 
# 鼻子 
t.penup() 
t.goto(0, 0) 
t.seth(180) 
t.pendown() 
t.begin_fill() 
t.circle(50, steps=3) 
t.end_fill() 
def mouth(): 
# 嘴巴 
t.color('#F9D503', '#F9D503') 
t.pensize(6) 
t.penup() 
t.penup() 
t.goto(-150, -100) 
t.pendown() 
t.begin_fill() 
t.seth(-30) 
t.fd(100) 
t.left(90) 
t.fd(30) 
t.right(90) 
t.fd(60) 
t.left(60) 
t.fd(60) 
t.right(90) 
t.fd(30) 
t.left(90) 
t.fd(100) 
t.end_fill() 
t.done() 
if __name__ == '__main__': 
init() 
outline() 
tail() 
eyes_items = [(-60, 230, 0), (60, -50, 1)] 
eyes(eyes_items) 
nose() 
mouth() 
t.done()

總結(jié)

以上所述是小編給大家介紹的利用Python繪制有趣的萬圣節(jié)南瓜怪效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python Dict 到 Dataclass實(shí)現(xiàn)高效數(shù)據(jù)訪問與管理的兩種方式(推薦)

    Python Dict 到 Dataclass實(shí)現(xiàn)高效數(shù)據(jù)訪問與管理的兩種方式(推薦)

    本文介紹了Python中的字典和DataClass兩種數(shù)據(jù)結(jié)構(gòu),并探討了如何將字典轉(zhuǎn)換為DataClass,字典適用于鍵值對存儲,感興趣的朋友一起看看吧
    2024-12-12
  • Matplotlib繪圖基礎(chǔ)之3D圖形繪制詳解

    Matplotlib繪圖基礎(chǔ)之3D圖形繪制詳解

    matplotlib 在1.0版本之前其實(shí)是不支持3D圖形繪制的,后來的版本中,matplotlib加入了3D圖形的支持,擴(kuò)展了其展示數(shù)據(jù)分布和關(guān)系的能力,下面就和大家介紹一下matplotlib中繪制各類3D圖形的方法
    2023-08-08
  • Python實(shí)現(xiàn)自動(dòng)批量修改文件名稱

    Python實(shí)現(xiàn)自動(dòng)批量修改文件名稱

    這篇文章主要為大家詳細(xì)介紹了如何基于Python語言,實(shí)現(xiàn)按照一定命名規(guī)則批量修改多個(gè)文件的文件名的效果,文中的示例代講解詳細(xì),感興趣的可以了解一下
    2023-01-01
  • Pytorch 如何實(shí)現(xiàn)常用正則化

    Pytorch 如何實(shí)現(xiàn)常用正則化

    這篇文章主要介紹了Pytorch 實(shí)現(xiàn)常用正則化的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • PyCharm設(shè)置每行最大長度限制的方法

    PyCharm設(shè)置每行最大長度限制的方法

    今天小編就為大家分享一篇PyCharm設(shè)置每行最大長度限制的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python操作docx寫入內(nèi)容,并控制文本的字體顏色

    python操作docx寫入內(nèi)容,并控制文本的字體顏色

    今天小編就為大家分享一篇python操作docx寫入內(nèi)容,并控制文本的字體顏色,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 在python中實(shí)現(xiàn)發(fā)送短信功能

    在python中實(shí)現(xiàn)發(fā)送短信功能

    工作中我們經(jīng)常會用到發(fā)短信的需求,那么如何在python代碼中實(shí)現(xiàn)發(fā)短息你的需求呢,本文我們就一起深入探討下,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-04-04
  • Django?ORM?多表查詢示例代碼

    Django?ORM?多表查詢示例代碼

    這篇文章主要介紹了Django?ORM?多表查詢,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Python學(xué)習(xí)之字典和集合的使用詳解

    Python學(xué)習(xí)之字典和集合的使用詳解

    Python 中字典和集合也是非常相近的概念,而且從外觀看上去,也有那么一絲絲的相似。本文將從字典基本知識入手,為你展開字典類型數(shù)據(jù)的各個(gè)知識點(diǎn),需要的可以參考一下
    2022-11-11
  • 超詳細(xì)注釋之OpenCV制作圖像Mask

    超詳細(xì)注釋之OpenCV制作圖像Mask

    這篇文章主要介紹了OpenCV制作圖像Mask,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評論

柳江县| 吴桥县| 青海省| 措美县| 曲阜市| 罗江县| 三河市| 喀什市| 乌鲁木齐县| 修水县| 长泰县| 新泰市| 通州市| 依安县| 廊坊市| 沁源县| 柯坪县| 阆中市| 新泰市| 肥乡县| 台安县| 舟曲县| 宁远县| 抚州市| 疏附县| 青岛市| 班玛县| 伊川县| 兴海县| 龙海市| 千阳县| 永康市| 琼结县| 丰县| 抚顺市| 德格县| 五河县| 子长县| 肃宁县| 大田县| 益阳市|