一分钟学会利用Python的turtle库进行端午玫瑰贺卡制作
端午节到了,突发奇想,能不能利用Python的turtle制作一个贺卡,它的效果大概是这样子的:
1.应用场景及效果
(2022年全国端午节礼仪考试)
假如你是皮卡丘,你想要给小霞的可达鸭写一封信,祝福他端午节快乐,让他多吃一点,文章内容不少于20个字(文中不得出现单位名字)
看下最终效果:
2.专属贺卡
当然我们也可以改动成我们的名字:
假如你是小小怪下士,你想要给大大怪将军写一封信,祝福他端午节快乐,让他多吃一点,文章内容不少于20个字
想要实现这一点,我们可以使用函数来完成:
import turtle as t
t.title(‘端午节送玫瑰’) #我们给我们的程序起名字叫端午节送玫瑰
t.screensize(bg=“pink”) #我们给我们的背景改为粉色,为什么是粉色,浪漫一点哈哈哈,还蛮土!
2.1 添加贺卡收件人的名字
为了更好地实现互动性,我们利用textinput接收用户输入的名字,收件人的名字
代码:
name=t.textinput(“姓名”,“请输入你想赠花的人的名字”)
2.2添加我们的名字
name2=t.textinput(“姓名”,“请输入你的名字”)
2.3添加祝福语
注意审题,我们要祝福对方端午节快乐,请他多吃一点,所以呢,代码是这个样子:
t.write(“\t”+name+“,端午快乐,请多吃一点!\n”,align=“left”,font=(“微软雅黑”,18))
2.4调整文字位置
加上赠给亲爱的,这样更亲切一点:
printer = turtle.Turtle()
printer.hideturtle()
printer.penup()
printer.back(200)
printer.write(“赠给亲爱的”+name+“\n\n”, align=“right”, font=(“微软雅黑”, 14, “bold”))
然后我们在加上我们的名字,from,高端一点
printer.write("from "+name2, align=“center”, font=(“微软雅黑”, 18, “normal”))
2.5 最后加上玫瑰
花蕊
turtle.fillcolor(“red”)
turtle.begin_fill()
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill()
花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)
花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
叶子1
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor(“green”)
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()
turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.left(90)
turtle.fd(80)
叶子2
turtle.right(90)
turtle.right(45)
turtle.fillcolor(“green”)
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(60)
turtle.right(90)
turtle.circle(200, 60)
turtle.done()
看一下最终效果,OK,大功告成!
3.代码分段讲解
我们以皮卡丘写给可达鸭的信为例:
1.首先我们添加互动,输入你想送贺卡人的名字以及你的名字
import turtle as t
t.screensize(bg="pink")
# 添加文字
t.title('端午节送玫瑰')
name=t.textinput("姓名","请输入你想赠花的人的名字")
name2=t.textinput("姓名","请输入你的名字")
print(name)
t.write("\t"+name+",端午快乐,请多吃一点!\n",align="left",font=("微软雅黑",18))
import turtle as t
效果:
输入完毕后,我们还需要一行来加上我们的名字
2.然后我们再加上玫瑰花
# 花蕊
turtle.fillcolor("red")
turtle.begin_fill()
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill()
# 花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)
# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
# 叶子1
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()
turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.left(90)
turtle.fd(80)
# 叶子2
turtle.right(90)
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(60)
turtle.right(90)
turtle.circle(200, 60)
turtle.done()
看一下最终效果,OK,大功告成!
4.代码源码
最后呢,代码源码贴在这里,供大家使用参考!
代码总结
import turtle as t
t.screensize(bg="pink")
# 添加文字
t.title('端午节送玫瑰')
name=t.textinput("姓名","请输入你想赠花的人的名字")
name2=t.textinput("姓名","请输入你的名字")
print(name)
t.write("\t"+name+",端午快乐,请多吃一点!\n",align="left",font=("微软雅黑",18))
import turtle as t
# !/usr/bin/env python
# coding: utf-8
# 绘制玫瑰花并添加文字
import turtle
# 设置画布大小
# turtle.screensize(canvwidth=None, canvheight=None, bg=None)
t.setup(width=0.6, height=0.6)
# 设置初始位置
turtle.penup()
turtle.left(90)
turtle.fd(200)
turtle.pendown()
turtle.right(90)
# 输出文字
printer = turtle.Turtle()
printer.hideturtle()
printer.penup()
printer.back(200)
printer.write("赠给亲爱的"+name+"\n\n", align="right", font=("微软雅黑", 14, "bold"))
printer.write("from "+name2, align="center", font=("微软雅黑", 18, "normal"))
# 花蕊
turtle.fillcolor("red")
turtle.begin_fill()
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill()
# 花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)
# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
# 叶子1
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()
turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.left(90)
turtle.fd(80)
# 叶子2
turtle.right(90)
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(60)
turtle.right(90)
turtle.circle(200, 60)
turtle.done()
OK,完美!祝大家端午节快乐,贺卡什么的,快快制作起来!