怎么用易语言写一个冰墩墩

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用易语言写一个冰墩墩相关的知识,希望对你有一定的参考价值。

参考技术A 不断调整曲线细节,用python自带的turtle库来画图。
冰墩墩是2022年北京冬季奥运会吉祥物,象征着冬奥会运动员强壮的身体、坚韧的意志和鼓舞人心的奥林匹克精神,于2019年9月17日正式亮相。该吉祥物以熊猫为原型进行设计创作,将熊猫形象与富有超能量的冰晶外壳相结合,体现了冬季冰雪运动和现代科技特点。
实际上,这个冰墩墩就是一个熊猫造型的可爱玩偶,有钥匙扣、毛绒玩具和塑料摆件等多个衍生产品,在2019年就已经推出。但在将近三年前的时候,冰墩墩并不热门,没有受到如此大的追捧。
从2月4日体育盛会开始之后,冰墩墩才突然爆红,供不应求。造成这个现象,实际上不是冰墩墩的吸引力增加了,而是一种“人无我有”的心态在作祟。突然有大量的人希望得到冰墩墩的相关纪念品作为送礼的东西,冰墩墩一下子就供不应求,越是这样就越为紧俏,能够在这个时候拿到冰墩墩,可以很好地证明自己的“钞能力”或者人脉关系。

刚刚出炉的冬奥会吉祥物:冰墩墩,附源码...

在抖音上面看到了有人画的冬奥会的冰墩墩,自己也想做一个。当然,图案的绘制还是得使用我们熟悉的turtle框架。原因很简单,它是一种基于canvas画布的UI框架。

文末附完整源代码,可直接运行。

阅读全文

首先,将这个turtle库安装好。

pip install turtle

将turtle导入我们的模块使用即可。

import turtle as tle

设置画笔的全局属性,先设置画笔的基本速度和UI界面的标题吧

tle.speed(50)  # 速度设置为100
tle.title(\'冬奥会:冰墩墩! 公众号:[Python 集中营]\')  # 设置好UI界面的标题
tle.bgcolor(\'white\')  # 将背景颜色设置为白色,有冬季的感觉...
tle.pencolor("deep sky blue")
tle.fillcolor("deep sky blue")

设置好画笔的全局属性以后,接下来就是图形绘制的部分。思路就是拿一只画笔在画布上面画图就好了。

在开始绘制之前,先来说明一下几个主要函数的使用方法。代码量比较多,但是用到的函数基本都是下面这几个。

turtle.goto(x,y)  将画笔移动到坐标为x,y的位置
turtle.penup()  提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.circle()  画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
setheading(angle)  设置当前朝向为angle角度
turtle.pendown()  移动时绘制图形,缺省时也为绘制
turtle.begin_fill()  准备开始填充图形
turtle.end_fill()  填充完成
turtle.left(degree) 逆时针移动degree°
turtle.forward(distance) 向当前画笔方向移动distance像素长度

画出冰墩墩的两个耳朵,注意在画布上把握好坐标,尽量计划将冰墩墩放在画布的正中间。

# 冰墩墩左耳朵
tle.penup()
tle.goto(-120, 200)
tle.setheading(160)
tle.begin_fill()
tle.pendown()
tle.circle(-30, 230)
tle.setheading(180)
tle.circle(37, 90)
tle.end_fill()
# 冰墩墩右耳朵
tle.penup()
tle.goto(90, 200)
tle.setheading(20)
tle.begin_fill()
tle.pendown()
tle.circle(30, 230)
tle.setheading(0)
tle.circle(-37, 90)
tle.end_fill()

绘制冰墩墩的头部,头部主要是通过弧线构成的。

# 冰墩墩头部
tle.pensize(5)
tle.penup()
tle.goto(-83, 237)
tle.setheading(30)
tle.pendown()
tle.circle(-134, 60)

tle.penup()
tle.goto(-120, 200)
tle.setheading(-120)
tle.pendown()
tle.circle(200, 80)

tle.penup()
tle.goto(90, 200)
tle.setheading(-60)
tle.pendown()
tle.circle(-200, 80)

tle.penup()
tle.setheading(210)
tle.pendown()
tle.circle(-120, 60)

绘制冰墩墩的双眼情况,双眼主要由眼圈、眼眶、眼珠构成的。

# 冰墩墩左眼
tle.penup()
tle.goto(-110, 100)
tle.setheading(-45)
tle.begin_fill()
tle.pendown()
agle = 0.2
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        agle = agle + 0.1
        tle.left(3)
        tle.forward(agle)
    else:
        agle = agle - 0.1
        tle.left(3)
        tle.forward(agle)
tle.end_fill()

tle.fillcolor("white")
tle.penup()
tle.goto(-73, 125)
tle.setheading(0)
tle.begin_fill()
tle.pendown()
tle.circle(14, 360)
tle.end_fill()

tle.penup()
tle.goto(-72, 133)
tle.setheading(0)
tle.begin_fill()
tle.pendown()
tle.circle(6, 360)
tle.end_fill()

# 冰墩墩右眼
tle.penup()
tle.goto(80, 100)
tle.setheading(45)
tle.begin_fill()
tle.fillcolor("deep sky blue")
tle.pendown()
agle = 0.2
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        agle = agle + 0.1
        tle.left(3)
        tle.forward(agle)
    else:
        agle = agle - 0.1
        tle.left(3)
        tle.forward(agle)
tle.end_fill()

tle.fillcolor("white")
tle.penup()
tle.goto(43, 125)
tle.setheading(0)
tle.begin_fill()
tle.pendown()
tle.circle(14, 360)
tle.end_fill()

tle.penup()
tle.goto(42, 133)
tle.setheading(0)
tle.begin_fill()
tle.pendown()
tle.circle(6, 360)
tle.end_fill()

公众号内回复"冰墩墩"获取完整源代码。

我是 [Python 集中营]、很高兴您看到了最后, 我是一个专注于 Python 知识分享的公众号,希望可以得到您的关注~

【往期精彩】

最优美的表格查看插件:tabulate

抖音同款课堂点名系统,PyQt5写起来很简单...

开工啦!批量向PDF文件添加中文水印...

大年初二、做了一个windows通知管理器!

百度图片下载器2.0

欢迎关注作者公众号【Python 集中营】,专注于后端编程,每天更新技术干货,不定时分享各类资料!

以上是关于怎么用易语言写一个冰墩墩的主要内容,如果未能解决你的问题,请参考以下文章

HarmonyOS 纯css3版冰墩墩

冰墩墩怎么选出来的?

冰墩墩是怎么选出来的呢?

如何用python画冰墩墩?

#私藏项目实操分享#利用鸿蒙JavaUI 框架的 WebView 加载本地冰墩墩网页

我只想要一个冰墩墩音效怎么制作?