Python爱心表白,快去发给你心仪的人叭~

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,活动领域博主爱笑的男孩。擅长深度学习,YOLO,活动,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?type=collect个人简介:打工人。

持续分享:机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。

如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666@foxmail.com

目录

Turtle介绍及使用方法

         创建一个画布和海龟对象

         控制海龟移动

         设置海龟属性 

         事件处理 

表白爱心源码

效果图


Turtle介绍及使用方法

        Turtle库是由Python创始人之一的Guido van Rossum创建的。它最初是为了在Python中编写特定于窗口的图形图像而设计的,以便学生们可以在一个友好的环境中学习编程。

        Turtle库是Python语言中一个强大的图形库,专门针对初学者设计而成,它提供了窗体、画布和海龟等基本元素,可以在画布上绘制线条、图形及动画等,支持向前、向后、左转、右转、上抬、下落、填充等基本绘图命令,通过编写简单的命令序列,可以实现一些有趣的图形和动画效果。

         创建一个画布和海龟对象

turtle库提供了两个主要的对象,一个是画布(Screen)对象,另一个是海龟(Turtle)对象。可以使用以下命令来创建它们:

import turtle

win = turtle.Screen() # 创建一个画布 

t = turtle.Turtle() # 创建一个海龟对象 

         控制海龟移动

在turtle库中,可以使用一些基本的指令来控制海龟的移动:

  • forward(distance):向当前方向前进指定距离
  • backward(distance):向相反方向后退指定距离
  • left(angle):向左转指定角度
  • right(angle):向右转指定角度
  • goto(x, y=None):移动海龟到指定位置
  • setx(x):设置海龟的x坐标
  • sety(y):设置海龟的y坐标
  • setheading(angle):设置海龟的朝向角度
  • circle(radius, extent=None, steps=None):绘制指定半径的圆

以下是一个简单的例子:

import turtle

win = turtle.Screen()
t = turtle.Turtle()

# 前进100个像素
t.forward(100)

# 左转90度
t.left(90)

# 后退50个像素
t.backward(50)

# 移动到(0, 0)
t.goto(0, 0)

# 绘制半径为50的圆
t.circle(50)

win.mainloop()

         设置海龟属性 

可以使用以下指令来设置海龟的属性:

  • shape(shape):设置海龟的形状,可以是’turtle’、‘arrow’、‘circle’、'square’等
  • color(color):设置海龟的颜色,可以是’r’、‘g’、'b’等
  • pensize(width):设置画笔的宽度
  • penup():将画笔抬起来,移动时不绘制线条
  • pendown():将画笔放下,移动时绘制线条
  • begin_fill():开始填充图形
  • end_fill():结束填充图形

以下是一个例子:

import turtle

win = turtle.Screen()
t = turtle.Turtle()

# 设置海龟属性
t.shape('turtle')
t.color('red')
t.pensize(3)

# 绘制三角形并填充
t.begin_fill()
for i in range(3):
    t.forward(100)
    t.left(120)
t.end_fill()

win.mainloop()

         事件处理 

可以使用turtle库提供的事件处理机制来响应鼠标、键盘等事件。下面是一个简单的例子:

import turtle

def move_forward():
    t.forward(10)

def move_left():
    t.left(10)

def move_right():
    t.right(10)

win = turtle.Screen()
t = turtle.Turtle()

win.onkey(move_forward, 'Up')
win.onkey(move_left, 'Left')
win.onkey(move_right, 'Right')

win.listen()
win.mainloop()

        在这个例子中,我们定义了三个函数来响应上、左、右键的动作,然后使用onkey()函数将这些函数与相应的键位绑定,最后使用listen()命令开始监听事件。

表白爱心源码

# -*- coding: utf-8 -*-

import turtle
import math
import time


if __name__ == '__main__':
    turtle.pen()
    t=turtle
    t.up()
    t.goto(0,150)
    t.down()
    t.color('red')
    t.begin_fill()
    t.fillcolor('red')
    t.speed(1)
    t.left(45)
    t.forward(150)
    t.right(45)
    t.forward(100)
    t.right(45)
    t.forward(100)
    t.right(45)
    t.forward(100)
    t.right(45)
    t.forward(250+math.sqrt(2)*100)
    t.right (90)
    t.speed(2)
    t.forward(250+100*math.sqrt(2))
    t.right(45)
    t.forward(100)
    t.right(45)
    t.forward(100)
    t.right(45)
    t.forward(100)
    t.right(45)
    t.forward(150)
    t.end_fill()
    t.goto(-10,0)
    t.pencolor('white')
    #L
    t.pensize(10)
    t.goto(-50,0)
    t.goto(-50,80)
    t.up ()
    #I
    t.goto(-100,0)
    t.down()
    t.goto(-160,0)
    t.goto(-130,0)
    t.goto(-130,80)
    t.goto(-160,80)
    t.goto(-100,80)
    t.up()
    #O
    t.goto(10,25)
    t.down()
    t.right(45)
    t.circle(25,extent=180)
    t.goto(60,55)
    t.circle(25,extent=180)
    t.goto(10,25)
    t.up()
    t.goto(75,80)
    t.down()
    t.goto(100,0)
    t.goto(125,80)
    t.up()
    t.goto(180,80)
    t.down()
    t.goto(140,80)
    t.goto(140,0)
    t.goto(180,0)
    t.up()
    t.goto(180,40)
    t.down()
    t.goto(140,40)
    #U
    t.up()
    t.goto(-40,-30)
    t.down()
    t.goto(-40,-80)
    t.circle(40,extent=180)
    t.goto(40,-30)
    t.hideturtle()
    time.sleep(10)

效果图

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的男孩。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值