成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不給糖果就搗亂,用Python繪制有趣的萬圣節南瓜怪

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

 關于萬圣節

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

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

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

比如wow:

 

魔獸世界 

再或者MapleStory:

 

冒險島 

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

Python與萬圣節

快到萬圣節了既然秉承著寓教于樂的python學習態度,不如就用Python畫一個萬圣節標志------南瓜怪吧!

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

turtle模塊

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

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

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

但如果你只是跟我一樣從娛樂出發,那么你只需簡單的幾分鐘入門就可以開始作畫了。在這里,我幫大家整理了一些常用的方法: 

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

百鳥朝鳳圖

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

大家都記得星爺的《唐伯虎點秋香》中,祝枝山一副百鳥朝鳳圖(小雞吃米圖)至今給人留下深刻的印象。那么今天讓IT界的王伯虎為大家帶來以下畫卷,名曰:這個南瓜有點冷

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

[[280868]] 

IT界的祝枝山 

turtle代碼實現

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

[[280869]] 

南瓜怪背景圖 

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

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

效果如下: 

circle中steps參數 

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

  1. 有人朋友會問1.74是哪里來的? 
  2. C = 2πr = 628 
  3. 628/360 = 1.7444… 所以每一度的邊長為1.74 
  1. 1import turtle as t 
  2. 3for i in range(360):    # 重復執行i次 
  3. 4    t.forward(1.74)     # 移動x個單位 
  4. 5    t.left(1)           # 偏移弧度 
  5. 7t.circle(100) 

圓繪圖分析 

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

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

南瓜外形

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

最終效果 


最終效果圖 

整體代碼:

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

 

責任編輯:華軒 來源: 清風Python
相關推薦

2022-10-30 12:57:31

UbuntuLinux

2018-04-17 09:20:35

Linux命令crypt

2021-11-01 07:33:02

Windows 10操作系統壁紙

2015-11-04 15:10:25

Fedora 23FedoraLinux

2015-10-29 11:43:40

易到

2021-11-01 12:35:19

LinuxASCII

2012-11-01 17:00:16

2012-11-05 10:50:50

程序員萬圣節俄羅斯方塊

2012-10-31 13:52:50

筆記本

2013-10-31 13:30:36

設計專題

2018-11-01 15:40:13

災備

2016-10-31 17:57:32

萬圣節三星

2011-11-01 09:35:48

2012-10-29 14:37:25

華為

2013-11-15 13:13:30

微軟反Linux戰略

2021-10-31 08:25:06

網絡釣魚木馬網絡攻擊

2012-11-09 10:33:14

Windows 8

2012-11-01 09:21:02

Windows 8

2013-10-31 13:03:58

釣魚網站趨勢科技
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区精品在线观看 | 99久久久久久久 | 亚洲午夜精品 | 美女一区 | 亚洲成人免费视频在线观看 | 国产精品1区2区3区 欧美 中文字幕 | 久久久久久免费毛片精品 | 欧美激情国产精品 | 国产91网址 | 国产美女在线观看 | 亚洲第一区国产精品 | 亚洲成人播放器 | 国产精品成人一区二区三区夜夜夜 | 黄色网址在线播放 | 国产在线观看 | 在线日韩 | 日日爱夜夜操 | 精品欧美一区二区三区久久久 | 久久一区二区精品 | 久久久久久久网 | 免费一二区 | 日韩免费一区二区 | 中文字幕一区在线观看视频 | 午夜爱爱毛片xxxx视频免费看 | 在线观看亚洲专区 | 亚洲成人免费在线观看 | 涩涩视频网 | 每日更新av| 国产成人免费视频网站视频社区 | 欧美一区二不卡视频 | 日韩在线观看一区 | 九九热精品在线视频 | 亚洲男女视频在线观看 | 狠狠骚 | 在线婷婷 | 青青草网站在线观看 | 国产在线拍偷自揄拍视频 | 男女免费在线观看视频 | www.日韩av.com | 成人a在线观看 | 天天综合操 |