欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

關于萬圣節(jié)

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

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

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

比如wow:

 

魔獸世界

再或者MapleStory:

 

冒險島

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

Python與萬圣節(jié)

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

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

turtle模塊

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

如果你是想認真學習這個庫,推薦去官網仔細看看相關內容:

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

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

 

就以上這些內容,已經完全夠大家強勢炫耀了…

百鳥朝鳳圖

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

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

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

 

IT界的祝枝山

turtle代碼實現(xiàn)

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

 

南瓜怪背景圖

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

# -*- coding: utf-8 -*- 
# @Author  : 王翔 
# @微信號  : King_Uranus 
# @公眾號  : 清風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):   # 重復執(zhí)行i次 
 t.forward(20.93)  # 移動x個單位 
 t.left(12)     # 左轉y度 
t.done()

效果如下:

 

circle中steps參數(shù)

steps參數(shù)其實大家可以理解為多邊形的邊數(shù)和,那么當邊數(shù)越多(30邊形),在我們肉眼看來是否圖形就趨近與圓了?再拆分思考一下,具體的實現(xiàn)是否可以理解為,畫筆畫一段直線,然后旋轉一下角度,再畫直線,如此往復,最終旋轉360度,組成一個圖形。同理如下:

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

C = 2πr = 628

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

import turtle as t 
for i in range(360):  # 重復執(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()

南瓜外形

 

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

最終效果

最終效果圖

 

整體代碼:

# -*- coding: utf-8 -*- 
# @Author  : 王翔 
# @WeChat  : King_Uranus 
# @公眾號  : 清風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) # 左轉3度 
    else: 
      t.right(3) # 左轉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()

總結

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

相關文章

最新評論