前几天就有很多小伙伴想要雪容融代码,今天就教大家用python画一个雪容融[1]
雪容融(Shuey Rhon Rhon),是2022年北京冬季残奥会的吉祥物,其以灯笼为原型进行设计创作,主色调为红色,头顶有如意环与外围的剪纸图案,面部带有不规则形状的雪块,身体可以向外散发光芒。 [3]
2019年8月21日,2022年北京冬奥会和冬残奥会组委会(简称北京冬奥组委)确定选用雪容融为冬残奥会吉祥物。2019年9月17日,吉祥物雪容融正式对外公布。 [4]
雪容融的整体造型渲染了2022年中国春节的节日气氛,吉祥物灯笼外形的发光属性寓意点亮梦想、温暖世界,代表着友爱、勇气和坚强,体现了冬残奥运动员的拼搏精神和激励世界的冬残奥会理念。 [5]在提供代码之前,给大家说说这次代码中最重要的库——turtle。turtle(海龟)库是turtle绘图体系python的实现;turtle绘图体系:1969年诞生,主要用于程序设计入门;turtle库是python的标准库之一;属于入门级的图形绘制函数库;turtle库绘制原理:有一只海龟在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、方向宽度等。Turtle模块绝对是吸引非专业代码开发者人员学习python入门的好工具,通过turtle几行代码的执行软件就会画出漂亮的图形,美观而且有成就感,这样一下子对python编程就产生了兴趣。这些漂亮的图形如三角形、五角星、机器猫等。在写代码的时候改变几个参数,就可以产生新的奇形怪状,小朋友们遇到这样的情形绝对会向家长或者老师炫耀。下面我就以玩转Turtle为题进入本篇的介绍。就介绍这么多吧 ,现在上部分代码:
# 创建类:雪容融 class Shuey: # 类的初始化 def __init__(self, x, y): line_color = "black" line_size = 1 t.pensize(line_size) t.pencolor(line_color) self.head(x, y) self.grown(x, y, line_color, line_size) self.hat(x, y) self.right_arm(x, y) self.left_arm(x, y) self.body(x, y) self.face(x, y, line_color, line_size) self.tie(x, y) self.belly(x, y, line_color, line_size) self.logo(x, y, line_color)
@classmethod def grown(cls, x, y, line_color, line_size): t.pencolor("yellow") t.pensize(3) goto(18 + x, 270 + y) t.setheading(90) t.circle(15, 60) t.circle(-10, 180) t.setheading(45) t.circle(-40, 120) t.setheading(0) t.circle(-10, 180) t.setheading(-110) t.circle(-15, 60) t.setheading(140) t.circle(70, 50) goto(40 + x, 270 + y) t.setheading(90) t.circle(12, 80) goto(60 + x, 262 + y) t.setheading(70) t.circle(-12, 80) t.pensize(line_size) t.pencolor(line_color)
编写头部的绘制函数:
@classmethod def head(cls, x, y): t.fillcolor("red") goto(18 + x, 266 + y) t.begin_fill() goto(-103 + x, -118 + y) circle(160, -202, 75) # 1 circle(76, -220, 60) # 2 circle(22, -220, 27) # 3 circle(10, -70, 50) # 4 circle(-22, -220, 27) # 5 t.circle(-260, 40) # 6 circle(-99, -198, 56) # 7 t.setheading(179) t.goto(-103 + x, -118 + y) t.end_fill()
编写帽子的绘制函数:
@classmethod def hat(cls, x, y): t.fillcolor("white") t.begin_fill() goto(-82.32 + x, 247.68 + y) t.setheading(16.0) circle(22, -220, 27) # 1 circle(10, -70, 50) # 2 circle(-22, -220, 27) # 3 circle(142.0, 100, 45) # 4 circle(137.0, 140, 60) # 5 circle(149, 60, 32) # 6 t.end_fill()
编写身体绘制函数:
@classmethod def body(cls, x, y): # body goto(-103 + x, -118 + y) t.fillcolor("red") t.begin_fill() t.setheading(240) t.circle(140, 70) t.goto(-90 + x, -290 + y) t.setheading(-45) t.circle(68, 66) t.goto(-12 + x, -292 + y) t.setheading(-90) t.circle(25, 80) t.goto(45 + x, -318 + y) t.setheading(8) t.circle(30, 80) t.setheading(48) t.circle(120, 35) t.setheading(120) t.circle(-120, 40) t.setheading(10) t.circle(80, 20) t.goto(113.47 + x, -126.16 + y) t.goto(-103 + x, -118 + y) t.end_fill()
来看一下效果吧:
以上代码为部分代码