Python-turtle库简介(情人节画图表白) - Go语言中文社区

Python-turtle库简介(情人节画图表白)


情人节快到了,在这里写一下如何通过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()

结果差不多是这个样子
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_40851744/article/details/104290293
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-29 20:40:28
  • 阅读 ( 1583 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢