turtle是python的自带画图库,一般可以做一些简单的绘图效果,好处是它会播放绘制的动画,所以可以简单出一些动画效果,这次画两个爱心做一个表白程序,先看下最终效果
下面介绍下主要代码
先画一个爱心
一个爱心的代码比较简单,我们用两个圆弧,两个直线就可以画一个简单的爱心
import turtle as t
t.speed(1)
t.pencolor('gray') # 设置画笔颜色
t.fillcolor('red') # 设置填充颜色
t.begin_fill()
t.left(40) # 左转40度
t.forward(100) # 右边往前100像素
t.circle(50, 210) # 画一个圆弧
t.right(138) # 往右转138度
t.circle(50, 210) # 画一个圆弧
t.forward(100) # 往前100个像素
t.end_fill() # 填充颜色
t.done() # 所有绘图过程结束
为方便理解,图和代码对应一下
这里的t.speed(1)是控制画图速度的,如果想更慢一点可以调更大的值,如果设为0则是最快的(ps:如果不用看画图轨迹的话可以用tracer函数达到更快的效果)
画两个爱心
因为有两个爱心,我们最好将画爱心的代码变成一个draw_heart函数,重复的代码我们就不要写两遍了
import turtle as t
t.speed(1)
t.pencolor('gray') # 设置画笔颜色
t.fillcolor('red') # 设置填充颜色
# 画爱心函数
def draw_heart():
t.begin_fill()
t.left(40) # 左转40度
t.forward(100) # 右边往前100像素
t.circle(50, 210) # 画一个圆弧
t.right(138) # 往右转138度
t.circle(50, 210) # 画一个圆弧
t.forward(100) # 往前100个像素
t.end_fill() # 填充颜色
# 画左下爱心
t.penup()
t.goto(-80,-80) # 左下爱心的起始点
t.pendown()
draw_heart()
# 画右上爱心
t.penup()
t.goto(0,0) # 右上爱心的起始点
t.pendown()
t.left(40)
draw_heart()
t.done() # 所有绘图过程结束
画箭
我们看到箭从右上角过来,在每插入一个爱心时候会有一些遮挡,这里我们用penup、pendown函数就能很好的解决这个场景了 penup — 提起画笔,下面的移动不会出现图形 pendown — 放下画笔,下面的移动会出现图形
看下代码对应的图上的线段
代码里两个penup之后的t.forward(68)就是两个爱心遮挡部分的线段
添加文字
画文字可以用write函数可以实现,比较简单,只是我们这里多加一步操作,画完之后让画图的箭头图标回到箭的头部去,最后贴下完成的代码
import turtle as t
t.speed(1)
t.pencolor('gray') # 设置画笔颜色
t.fillcolor('red') # 设置填充颜色
# 画爱心函数
def draw_heart():
t.begin_fill()
t.left(40) # 左转40度
t.forward(100) # 右边往前100像素
t.circle(50, 210) # 画一个圆弧
t.right(138) # 往右转138度
t.circle(50, 210) # 画一个圆弧
t.forward(100) # 往前100个像素
t.end_fill() # 填充颜色
# 画左下爱心
t.penup()
t.goto(-80,-80) # 左下爱心的起始点
t.pendown()
draw_heart()
# 画右上爱心
t.penup()
t.goto(0,0) # 右上爱心的起始点
t.pendown()
t.left(40)
draw_heart()
# 画一支箭
t.pensize(4)
t.penup()
t.goto(100,180) # 移动到箭的右上角
t.pendown()
t.setheading(225) # 指定运动方向角
t.forward(140) # 前进140像素
t.penup()
t.forward(68)
t.pendown()
t.forward(42)
t.penup()
t.forward(68)
t.pendown()
t.forward(60)
t.penup()
t.goto(-100, -150)
t.pencolor('red')
t.write("这里你们懂的~", True, font=("宋体", 18))
t.goto(-170,-90)
t.pendown()
t.done() # 所有绘图过程结束
今天的文章python用turtle表个白分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/18139.html