python用turtle表个白

python用turtle表个白turtle是python的自带画图库,一般可以做一些简单的绘图效果,好处是它会播放绘制的动画,所以可以简单出一些动画效果,这次画两个爱心做一个表白程序

turtle是python的自带画图库,一般可以做一些简单的绘图效果,好处是它会播放绘制的动画,所以可以简单出一些动画效果,这次画两个爱心做一个表白程序,先看下最终效果

1.gif

下面介绍下主要代码

先画一个爱心

一个爱心的代码比较简单,我们用两个圆弧,两个直线就可以画一个简单的爱心

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()  # 所有绘图过程结束

为方便理解,图和代码对应一下

1.png

这里的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()  # 所有绘图过程结束

2.png

画箭

我们看到箭从右上角过来,在每插入一个爱心时候会有一些遮挡,这里我们用penup、pendown函数就能很好的解决这个场景了 penup — 提起画笔,下面的移动不会出现图形 pendown — 放下画笔,下面的移动会出现图形

看下代码对应的图上的线段

3.png 代码里两个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表个白分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/18139.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注