在抖音下面看到了有人画的冬奥会的冰墩墩,本人也想做一个。当然,图案的绘制还是得应用咱们相熟的turtle框架。起因很简略,它是一种基于canvas画布的UI框架。

文末附残缺源代码,可间接运行。

浏览全文

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

pip install turtle

将turtle导入咱们的模块应用即可。

import turtle as tle

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

tle.speed(50)  # 速度设置为100tle.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.2for 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.2for 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