情人节快到了,在这里写一下如何通过Python的turtle库来写一个动态的表白代码,如果有需要的话就拿走好了。首先会讲一些turtle库的知识:
import turtle as t #引入turtle库
t.screensize(画布的宽,画布的高,背景颜色) #单位为像素
t.setup(画布的宽,画布的高,画布距离左上角的位置x,画布距离左上角的位置y)
'''
输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,
(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于
屏幕中心。
'''
t.pensize(笔的宽度的像素值)
t.pencolor(笔的颜色,为字符串'red'等)
t.speed(画笔移动速度,0-10整数)
t.forward(distance) #向当前画笔方向移动distance像素长度
t.backward(distance) #向当前画笔相反方向移动distance像素长度
t.right(degree) #顺时针移动degree°
t.left(degree) #逆时针移动degree°
t.pendown() #移动时绘制图形,缺省时也为绘制
t.goto(x,y) #将画笔移动到坐标为x,y的位置
t.penup() #提起笔移动,不绘制图形,用于另起一个地方绘制
t.circle() #画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
t.fillcolor(colorstring) #绘制图形的填充颜色
t.color(color1, color2) #同时设置pencolor=color1, fillcolor=color2
t.filling() #返回当前是否在填充状态
t.begin_fill() #准备开始填充图形
t.end_fill() #填充完成
t.hideturtle() #隐藏画笔的turtle形状
t.showturtle() #显示画笔的turtle形状
t.clear() #清空,但是turtle的位置和状态不会改变
t.reset() #清空窗口,重置turtle状态为起始状态
t.undo() #撤销上一个turtle动作
t.isvisible() #返回当前turtle是否可见
t.write(s [,font=("font-name",font_size,"font_type")])
'''
写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;
font为可选项,font参数也是可选项
'''
t.mainloop()t.done()
'''
启动事件循环 -调用Tkinter的mainloop函数。
必须是乌龟图形程序中的最后一个语句。
'''
t.delay(delay=None) #设置或返回以毫秒为单位的绘图延迟。
然后是一个表白代码,我自己写的,因为审美水平有限(这一点经常被人诟病,已经习惯了。。。),所以大家看看就好啦
import turtle as t
import math as mt
if __name__ == "__main__":
t.screensize(800,600,'white')
t.pensize(10)
t.speed(10)
#爱心1
t.color('red','pink')
t.begin_fill()
for i in range(-90,90,5):
x=mt.cos(mt.radians(i))
y=float(pow(mt.cos(mt.radians(i)),2/3))+float(mt.sin(mt.radians(i)))
t.penup()
# print(int(x*50)+10,int(y*50)+10)
t.goto(int(x*50)+50,int(y*50)+30)
t.pendown()
t.forward(1)
t.penup()
t.goto(-int(x*50)+50,int(y*50)+30)
t.pendown()
t.forward(1)
t.penup()
t.end_fill()
#爱心2
t.goto(0,-10)
t.penup()
t.begin_fill()
for i in range(0,360,5):
r=60*(1-mt.sin(mt.radians(i)))
t.penup()
t.left(5)
t.forward(r)
t.pendown()
t.forward(1)
t.penup()
t.backward(r+1)
t.pendown()
t.end_fill()
#L
t.penup()
t.goto(-200,0)
t.left(90)
t.begin_fill()
t.pendown()
t.forward(100)
t.right(90)
t.forward(20)
t.right(90)
t.forward(80)
t.left(90)
t.forward(40)
t.right(90)
t.forward(20)
t.right(90)
t.forward(60)
t.end_fill()
#o
t.penup()
t.goto(-80,0)
t.pendown()
t.begin_fill()
t.circle(-50)
t.end_fill()
t.penup()
t.color('red','white')
t.begin_fill()
t.goto(-80,20)
t.pendown()
t.circle(-30)
t.end_fill()
t.color('red','pink')
#E
t.penup()
t.goto(120, 0)
t.right(180)
t.left(90)
t.begin_fill()
t.pendown()
t.forward(100)#上
t.right(90)
t.forward(60)#横
t.right(90)
t.forward(20)#竖
t.right(90)
t.forward(40)#横
t.left(90)
t.forward(20)#竖
t.left(90)
t.forward(40)#横
t.right(90)
t.forward(20)
t.right(90)
t.forward(40)
t.left(90)
t.forward(20)
t.left(90)
t.forward(40)
t.right(90)
t.forward(20)
t.right(90)
t.forward(60)
t.end_fill()
t.mainloop()