turtle画图实现阿根廷足球

博主受到梅西精彩进球的启发,使用Python的turtle模块绘制了一个充满阿根廷元素和足球动感的图像,以此来纪念这场激动人心的比赛。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🖱 ⌨个人主页: Love And Program的个人主页
💖💖如果对你有帮助的话希望三连💨💨支持一下博主

致昨晚的梅西

       昨晚上阿根廷与荷兰的争锋真的让我十分满足,两边都是拼尽全力,能进八强的都绝非弱旅,剧情更是跌宕起伏,小心脏呼呼的,就一个字,爽啊!
       尤其是看完梅西的劲射我真的久久难以平复,所以我决定,用turtle画一个梅西 的抽射球🤣🤣

思路

加入阿根廷元素

       首先肯定是阿根廷国旗打底,这是灵魂所在,这里需要声明一下,turtle.Screen().bgpic()函数只接受gif图片,同时直接手动png、jpegjif都不可以,这里我也尝试过使用addshape()函数,不过效果并不是很好,非常鬼畜,有兴趣的可以搜搜试试。

sc = turtle.Screen()
sc.bgpic("3.gif")

在这里插入图片描述

加入足球元素

       然后就是画一个足球,但是仔细一想既然是抽射,那肯定需要表现出球在运动,那我们就不能单单画一个球,所以我手动给他加上了破风声,飕~ 飕 ~ 艘~,不过画画能力一般般啊,自己花半天就这个比例能看😂
在这里插入图片描述
       我们在最外圈加一层线条,表示风的轨迹,就像梅西射门球速达到122km/h一样,艘~的一下破门而入

def neibu(jiaodu, lianxian):
    turtle.penup()
    turtle.goto(-50, -87)
    turtle.pendown()

    for i in range(6):
        turtle.fd(100)
        lianxian = - 60 + 60 * i
        turtle.seth(lianxian)
        if i==0:
            turtle.fd(60)
            turtle.seth(-94)
            turtle.fd(170)
            turtle.seth(86)
            turtle.fd(170)
            turtle.seth(120 + 60 * i)
            turtle.fd(60)

        elif i==1:
            turtle.fd(100)
            turtle.seth(-93)
            turtle.fd(170)
            turtle.seth(87)
            turtle.fd(170)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)

        elif i==2:

            turtle.fd(100)
            turtle.seth(-91)
            turtle.fd(220)
            turtle.seth(89)
            turtle.fd(220)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)

        elif i==3:
            turtle.fd(100)
            turtle.seth(-95)
            turtle.fd(320)
            turtle.seth(85)
            turtle.fd(320)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)
        elif i ==4:
            turtle.fd(100)
            turtle.seth(-94)
            turtle.fd(200)
            turtle.seth(86)
            turtle.fd(200)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)
        elif i == 5:
            turtle.fd(100)
            turtle.seth(-92)
            turtle.fd(120)
            turtle.seth(88)
            turtle.fd(120)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)

        jiaodu += 60
        turtle.seth(jiaodu)
turtle.penup()
# 移动画笔的坐标
turtle.goto(0, -200)
turtle.pendown()
# turtle.color('black')
turtle.circle(200)
# 画中心六角形
jiaodu = 0
lianxian = 0

turtle.begin_fill()
neibu(jiaodu, lianxian)
turtle.end_fill()

       最后一步我们需要填充颜色,一开始想画的中间是五角星的球,里面是星空的颜色,但是最后做出来感觉达到上面这种效果就够了,比加上五角星好看多了,有喜欢后一种的可以自己加上并选择自己喜欢的颜色作参考:

def wujiao():
    for i in range(5):
        turtle.forward(120)
        turtle.right(144)
#中心五角星
turtle.color('#D9006C')
turtle.begin_fill()
# turtle.fillcolor((1,1,1))
turtle.penup()
turtle.goto(-60, 15)
turtle.pendown()
wujiao()
turtle.end_fill()

在这里插入图片描述


源码

最后是源码部分,只需要安装turtle即可直接运行

import turtle
def wujiao():
    for i in range(5):
        turtle.forward(120)
        turtle.right(144)
def neibu(jiaodu, lianxian):
    turtle.penup()
    turtle.goto(-50, -87)
    turtle.pendown()

    for i in range(6):
        turtle.fd(100)
        lianxian = - 60 + 60 * i
        turtle.seth(lianxian)
        if i==0:
            turtle.fd(60)
            turtle.seth(-94)
            turtle.fd(170)
            turtle.seth(86)
            turtle.fd(170)
            turtle.seth(120 + 60 * i)
            turtle.fd(60)

        elif i==1:
            turtle.fd(100)
            turtle.seth(-93)
            turtle.fd(170)
            turtle.seth(87)
            turtle.fd(170)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)

        elif i==2:

            turtle.fd(100)
            turtle.seth(-91)
            turtle.fd(220)
            turtle.seth(89)
            turtle.fd(220)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)

        elif i==3:
            turtle.fd(100)
            turtle.seth(-95)
            turtle.fd(320)
            turtle.seth(85)
            turtle.fd(320)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)
        elif i ==4:
            turtle.fd(100)
            turtle.seth(-94)
            turtle.fd(200)
            turtle.seth(86)
            turtle.fd(200)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)
        elif i == 5:
            turtle.fd(100)
            turtle.seth(-92)
            turtle.fd(120)
            turtle.seth(88)
            turtle.fd(120)
            turtle.seth(120 + 60 * i)
            turtle.fd(100)

        jiaodu += 60
        turtle.seth(jiaodu)

turtle.pensize(10)
turtle.speed(0)

sc = turtle.Screen()
sc.bgpic("3.gif")

turtle.penup()
turtle.goto(-0, 0)
turtle.pendown()


#先画个圆
turtle.penup()
# 移动画笔的坐标
turtle.goto(0, -200)
turtle.pendown()
# turtle.color('black')
turtle.circle(200)

# 画中心六角形
jiaodu = 0
lianxian = 0

turtle.begin_fill()
neibu(jiaodu, lianxian)
turtle.end_fill()

#中心五角星,可删
turtle.color('#D9006C')
turtle.begin_fill()
# turtle.fillcolor((1,1,1))
turtle.penup()
turtle.goto(-60, 15)
turtle.pendown()
wujiao()
turtle.end_fill()
# 于此结束
turtle.color('black')
turtle.hideturtle()
turtle.done()
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love And Program

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值