关于万圣节

万圣节又叫诸圣节,在每年的 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但如果你只是跟我一样从娱乐出发,那么你只需简单的几分钟入门就可以开始作画了。在这里,我帮大家整理了一些常用的方法:就以上这些内容,已经完全够大家强势装 13 了…百鸟朝凤图天朝每晚的新闻联播节目结束,总会播放一下主持人收稿子的画面。为了告诉观众朋友们,主持人说新(段)闻(子)是打过草稿的!那既然要画南瓜怪,我也得先打打草稿了!大家都记得星爷的《唐伯虎点秋香》中,祝枝山一副百鸟朝凤图(小鸡吃米图)至今给人留下深刻的印象。那么今天让IT界的王伯虎为大家带来以下画卷,名曰:这个南瓜有点冷

不知道这幅图会引来多少粉丝取关,没办法他们肯定是嫉妒我的才华!

IT界的祝枝山turtle 代码实现首先,为了能起到遮盖画功低劣的效果,我们需要在绘图前,先选则一张稍显美观的背景图,比如这样:

南瓜怪背景图

下来由于南瓜不是一个正圆,我们需要画出椭圆的实现效果。刚才学过的内容中,有一个 turtle.circle(r,extent,steps) 的方法,其中 steps 参数值得我们去重点分析,先来看一段代码:

 1# -*- coding: utf-8 -*- 2# @Author   : 王翔 3# @微信号   : King_Uranus 4# @公众号   : 清风Python 5# @GitHub   : https://github.com/BreezePython 6# @Date     : 2019/10/30 22:31 7# @Software : PyCharm 8# @version  :Python 3.7.3 9# @File     : circle.py1011import turtle as t1213for i in range(3, 10, 2):14    t.circle(100, steps=i)15    t.left(90)1617t.circle(100, steps=30)1819for i in range(30):     # 重复执行i次20    t.forward(20.93)    # 移动x个单位21    t.left(12)          # 左转y度2223t.done()

效果如下:

circle 中 steps 参数

steps 参数其实大家可以理解为多边形的边数和,那么当边数越多(30 边形),在我们肉眼看来是否图形就趋近与圆了?再拆分思考一下,具体的实现是否可以理解为,画笔画一段直线,然后旋转一下角度,再画直线,如此往复,最终旋转 360 度,组成一个图形。同理如下:

有人朋友会问 1.74 是哪里来的?
C = 2πr = 628
628/360 = 1.7444… 所以每一度的边长为 1.74

1import turtle as t23for i in range(360):    # 重复执行i次4    t.forward(1.74)     # 移动x个单位5    t.left(1)           # 偏移弧度67t.circle(100)
圆绘图分析

知道了这些,下来就该考虑如何画椭圆了,之所以为圆,是由于各边相等,那么如果各边不等是否就会造成椭圆的效果,现在我们通过这种方式来画南瓜外形:

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

南瓜把儿比较简单,只需要把画笔调粗,然后画一段弧度即可。眼睛部分的处理方法与南瓜上盖类似,不多赘述。最终效果

最终效果图

整体代码:

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

- END -

python简笔画_不给糖果就捣乱,用 Python 绘制有趣的万圣节南瓜怪相关推荐

  1. python简笔画_不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日:而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

  2. python画圣诞老人简笔画_利用Python绘制有趣的万圣节南瓜怪效果

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日;而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

  3. python简笔画_用Python画个万圣节南瓜怪

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日:而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

  4. 不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日:而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

  5. python图形绘制糖_不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪!

    万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日:而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints' Day) ...

  6. python canvas画弧度_「万圣节教程」不给糖就捣乱,用Python绘制有趣的万圣节南瓜怪...

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日;而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

  7. 不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪【华为云分享】

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日:而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

  8. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  9. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

最新文章

  1. General-purpose and introductory examples for the scikit.
  2. 6kyu Steps in k-prime
  3. prism项目搭建 wpf_Prism完成的一个WPF项目
  4. BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
  5. 加密货币的天堂何在?
  6. python 姿势估计_Python中的实时头姿势估计
  7. BXP无盘介绍(转)
  8. word文件做一半未响应_Word 2016 开个别文档总是未响应
  9. XML基础复习[整理][转载]
  10. 修改EDGE的新标签页网址
  11. 椭圆机真的不伤膝盖吗
  12. 微信JSAPI支付 - 服务商模式下子商户 统一下单的注意事项
  13. 2006年第三季度中国ERP市场规模与市场份额
  14. 【HQL】HQL汇总
  15. 解决远程桌面连接“这可能是由于CreddSSP加密数据库修正”的问题
  16. 用java实现:生成13位条形码
  17. RadioKingTX18s遥控器(EdgeTx系统)搭配FlySky-ia6b接收机(富斯)在MissionPlanner配置pixhawk2.4.8失控保护功能
  18. IPS—线束和柔性管路三维仿真解决方案
  19. 基于Apriori算法的网上图书销售ssm java毕业设计
  20. CCN课程究极笔记(上ccna课程记录的)

热门文章

  1. 计算机死机按什么恢复出厂设置,电脑恢复出厂设置的方法
  2. Labview远程连接MySQL详细教程
  3. 如何利用JavaScript遍历JSON数组
  4. Oracle 中单引号和双引号的区别
  5. reduced rank regression model
  6. PWN! 第一次测试答案及讲解
  7. mysql索引创建规则、联合与一般索引、执行计划、索引选择,索引重建与下推
  8. linux制作win10安装u盘,win10u盘安装系统怎样全新安装
  9. android百分号运算符计算器,请教这个计算器中的百分号与分数计算的代码。
  10. java设置word页面为A3_word页面设置里没有A3纸格式怎么办 word怎么设置成a3