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

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

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

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

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

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

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

比如wow:

 

魔獸世界

再或者M(jìn)apleStory:

 

冒險島

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

Python與萬圣節(jié)

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

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

turtle模塊

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

如果你是想認(rèn)真學(xué)習(xí)這個庫,推薦去官網(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ī)硪韵庐嬀?,名曰:這個南瓜有點(diǎn)冷

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

 

IT界的祝枝山

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

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

 

南瓜怪背景圖

下來由于南瓜不是一個正圓,我們需要畫出橢圓的實(shí)現(xiàn)效果。剛才學(xué)過的內(nèi)容中,有一個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)  # 移動x個單位 
 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度,組成一個圖形。同理如下:

有人朋友會問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)   # 移動x個單位 
 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é)南瓜怪效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

最新評論