中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

教你用Python繪制萬圣節南瓜怪

發布時間:2020-09-10 15:28:48 來源:億速云 閱讀:165 作者:Leah 欄目:編程語言

本篇文章給大家分享的是教你用Python繪制萬圣節南瓜怪,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

關于萬圣節

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

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

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

比如wow:

教你用Python繪制萬圣節南瓜怪

再或者MapleStory:

教你用Python繪制萬圣節南瓜怪

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

Python與萬圣節

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

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

turtle模塊

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

在這里,我幫大家整理了一些常用的方法:

教你用Python繪制萬圣節南瓜怪

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

百鳥朝鳳圖

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

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

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

教你用Python繪制萬圣節南瓜怪

turtle代碼實現

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

教你用Python繪制萬圣節南瓜怪

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

# -*- coding: utf-8 -*-
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):     # 重復執行i次
    t.forward(20.93)    # 移動x個單位
    t.left(12)          # 左轉y度
 
t.done()

效果如下:

教你用Python繪制萬圣節南瓜怪

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

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

C = 2πr = 628

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

import turtle as t
 
for i in range(360):    # 重復執行i次
    t.forward(1.74)   # 移動x個單位
    t.left(1)       # 偏移弧度
 
t.circle(100)

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

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()

教你用Python繪制萬圣節南瓜怪

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

最終效果

教你用Python繪制萬圣節南瓜怪

整體代碼:

# -*- coding: utf-8 -*- 
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繪制萬圣節南瓜怪的教程,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

休宁县| 益阳市| 南皮县| 全南县| 新民市| 太康县| 青阳县| 天全县| 西青区| 绥芬河市| 方正县| 会东县| 泰和县| 佛山市| 西乡县| 西贡区| 慈溪市| 抚松县| 海门市| 富源县| 汉沽区| 邮箱| 普格县| 崇礼县| 黄浦区| 永泰县| 中山市| 靖西县| 建始县| 阳春市| 邓州市| 万宁市| 肇州县| 阳城县| 德格县| 隆回县| 青阳县| 叶城县| 永州市| 武邑县| 蓬安县|