万圣节快乐—用Python画一个南瓜头

万圣节

万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日,作为一个程序员怎么能不庆祝一下呢,接下来就利用 Python 中的 turtle 库画一个南瓜头出来:

turtle库常用函数

函数说明
forward(distance)画笔向前移动distance距离
backforward(distance)画笔向后移动distance距离
right(degree)绘制方向向右旋转degree度
exitonclick()点击关闭图形窗口
penup()抬起画笔,之后移动画笔不绘制形状
pendown()落下画笔,之后移动画笔绘制形状
pensize()设置画笔宽度
pencolor()设置画笔颜色

其实 turtle 用起来并没有那么复杂,可以看到这些函数和我们人类写字画画是很类似的一个过程,比如 抬起画笔,然后移动画笔,再落下画笔。下面我们开始写个小例子。

图片准备

为了恐怖一点,我找了一张图片当作背景图:

万圣节.png

png 格式的哦

我们要在这张图上画上一个这样的南瓜头:

image.png

创建项目

项目就随意创建一个 python 项目即可,然后新建一个 .py 文件
在第一行引入 画图工具库 :

import turtle

初始化

首先我们需要创建一个画布,以及设置背景图片和画笔速度等参数,定义一个函数,代码如下:

def init():
    turtle.bgpic('B:/PyCharmProjects/netDemo/com/maxuhui/net/万圣节.png')
    turtle.screensize(600, 800, bg='white')
    turtle.speed(10)
    turtle.hideturtle()
    turtle.bgcolor('black')
    turtle.bgpic('B:/PyCharmProjects/netDemo/com/maxuhui/net/万圣节.png')

注意缩进!注意缩进!注意缩进!
Python 中有严格的代码缩进,否则会报错!

南瓜头轮廓

首先先把轮廓给画出来,也就是一个大致的形状,同样封装到函数内,代码如下:

def outline():
    turtle.color('#CF5E1A', '#CF5E1A')
    turtle.penup()
    turtle.goto(250, 30)
    turtle.pendown()
    turtle.seth(90)
    turtle.begin_fill()
    for j in range(25):
        turtle.fd(j)
        turtle.left(3.6)
    for j in range(25, 0, -1):
        turtle.fd(j)
        turtle.left(3.6)
    turtle.seth(-90)
    turtle.circle(254, 180)
    turtle.end_fill()

绘制南瓜枝

南瓜头顶部是有一个枝的,这里定义一个函数去画南瓜枝:

def tail():
    turtle.penup()
    turtle.goto(0, 180)
    turtle.pendown()
    turtle.color('#2E3C01')
    turtle.seth(100)
    turtle.pensize(25)
    turtle.circle(60, 100)

眼睛

南瓜头眼睛绘制代码:

def eyes(args):
    for items in args:
        position, angle, direction = items
        turtle.pensize(6)
        turtle.penup()
        turtle.goto(position, 0)
        turtle.pendown()
        turtle.color('#4C180D', '#4C180D')
        turtle.begin_fill()
        turtle.seth(angle)
        for j in range(55):
            turtle.fd(3)
            if direction:
                turtle.left(3)  # 左转3度
            else:
                turtle.right(3)  # 右转3度
        turtle.goto(position, 0)
        turtle.end_fill()

鼻子和嘴巴

def nose():
    # 鼻子
    turtle.penup()
    turtle.goto(0, 0)
    turtle.seth(180)
    turtle.pendown()
    turtle.begin_fill()
    turtle.circle(50, steps=3)
    turtle.end_fill()


def mouth():
    # 嘴巴
    turtle.color('#F9D503', '#F9D503')
    turtle.pensize(6)
    turtle.penup()
    turtle.penup()
    turtle.goto(-150, -100)
    turtle.pendown()
    turtle.begin_fill()
    turtle.seth(-30)
    turtle.fd(100)
    turtle.left(90)
    turtle.fd(30)
    turtle.right(90)
    turtle.fd(60)
    turtle.left(60)
    turtle.fd(60)
    turtle.right(90)
    turtle.fd(30)
    turtle.left(90)
    turtle.fd(100)
    turtle.end_fill()
    turtle.done()

运行

调用以上我们写的几个函数,然后运行:

if __name__ == '__main__':
    init()
    outline()
    tail()
    eyes_items = [(-60, 230, 0), (60, -50, 1)]
    eyes(eyes_items)
    nose()
    mouth()
    turtle.done()

image.png

最终效果

image.png

关注微信公众号"程序员小辉"
微信图片20190813101011.jpg

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,我们可以看出如何使用Python的Turtle库来绘万圣节南瓜。首先,我们需要创建一个布,设置背景图片和笔速度等参数。然后,我们可以使用Turtle库中的函数来绘制南瓜的各个部分,例如绘制南瓜的外形、眼睛、鼻子和嘴巴等。最后,我们可以使用Turtle库中的函数来填充南瓜的颜色,使其看起来更加逼真。 具体的代码实现可以参考以下步骤: 1.导入Turtle库 import turtle 2.创建布并设置背景图片和笔速度等参数 def init(): turtle.bgpic('B:/PyCharmProjects/netDemo/com/maxuhui/net/万圣节.png') turtle.screensize(600, 800, bg='white') turtle.speed(10) turtle.hideturtle() turtle.bgcolor('black') turtle.bgpic('B:/PyCharmProjects/netDemo/com/maxuhui/net/万圣节.png') 3.绘制南瓜的外形 turtle.penup() turtle.goto(0, -200) turtle.pendown() turtle.begin_fill() turtle.color('orange') turtle.circle(200) turtle.end_fill() 4.绘制南瓜的眼睛 turtle.penup() turtle.goto(-80, 80) turtle.pendown() turtle.begin_fill() turtle.color('white') turtle.circle(40) turtle.end_fill() turtle.penup() turtle.goto(80, 80) turtle.pendown() turtle.begin_fill() turtle.color('white') turtle.circle(40) turtle.end_fill() turtle.penup() turtle.goto(-60, 60) turtle.pendown() turtle.begin_fill() turtle.color('black') turtle.circle(20) turtle.end_fill() turtle.penup() turtle.goto(60, 60) turtle.pendown() turtle.begin_fill() turtle.color('black') turtle.circle(20) turtle.end_fill() 5.绘制南瓜的鼻子 turtle.penup() turtle.goto(0, 20) turtle.pendown() turtle.begin_fill() turtle.color('black') turtle.circle(30) turtle.end_fill() 6.绘制南瓜的嘴巴 turtle.penup() turtle.goto(-100, -80) turtle.pendown() turtle.color('black') turtle.pensize(10) turtle.right(45) turtle.circle(100, 90) 7.填充南瓜的颜色 turtle.penup() turtle.goto(0, -200) turtle.pendown() turtle.begin_fill() turtle.color('green') turtle.circle(200, 180) turtle.end_fill() 完成以上步骤后,我们就可以成功绘制出一个万圣节南瓜了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值