Python漂浮爱心代码
目录
系列文章
前言
小海龟
漂浮爱心
完整代码
尾声
系列文章
序号 | 直达链接 |
表白系列 | |
1 | Python无法拒绝的表白界面(完整代码)_python玫瑰花雨编程-CSDN博客 |
2 | Python满屏飘字表白代码(完整代码)_抖音同款满屏飘字表白代码(python版)-CSDN博客 |
3 | Python无限弹窗满屏表白代码(完整代码)_python弹窗满屏幕-CSDN博客 |
4 | Python李峋同款跳动的爱心(完整代码)_python绘制立体玫瑰花-CSDN博客 |
5 | Python流星雨①(完整代码)_python流星雨代码-CSDN博客 |
6 | Python漂浮爱心(完整代码)_csdn-CSDN博客 |
7 | Python爱心光波①(完整代码)-CSDN博客 |
8 | Python红色玫瑰花(完整代码)_python玫瑰花简单代码-CSDN博客 |
节日系列 | |
1 | Python动漫烟花(完整代码)_python编程画懒羊羊-CSDN博客 |
Python跨年烟花(完整代码)_python跨年代码-CSDN博客 | |
Python粒子烟花(完整代码)_python粒子特效代码-CSDN博客 | |
2 | Python圣诞礼物(完整代码)_python圣诞节代码-CSDN博客 |
Python精美圣诞树(完整代码)_圣诞树代码python合集-CSDN博客 | |
Python礼物圣诞树(完整代码)_绿色圣诞树代码-CSDN博客 | |
Python粉色圣诞树(完整代码)_跳动爱心代码-CSDN博客 | |
3 | Python白色飘雪(完整代码)_python结婚祝福-CSDN博客 |
4 | Python生日蛋糕(完整代码)_python tkinter 列表控件-CSDN博客 |
5 | Python五彩气球(完整代码)_want595-CSDN博客 |
6 | Python国庆祝福(完整代码)_tk.radiobutton控件-CSDN博客 |
7 | Python万圣礼物(完整代码)_python tkinter menu背景颜色无效-CSDN博客 |
8 | Python愚人代码(完整代码)_tkinter 点击button 才显示lab-CSDN博客 |
9 | Python浪漫星空(完整代码)_python浪漫星空代码-CSDN博客 |
10 | Python樱花树(完整代码)_tk, text, entry-CSDN博客 |
动漫系列 | |
1 | Python名侦探柯南(完整代码)_python画柯南-CSDN博客 |
2 | Python喜羊羊(完整代码)_python喜洋洋代码-CSDN博客 |
Python懒羊羊(完整代码)_python编程画懒羊羊-CSDN博客 | |
Python灰太狼(完整代码)_用python画灰太狼-CSDN博客 | |
Python小灰灰(完整代码)_python画灰太狼儿子代码-CSDN博客 | |
Python小香香(完整代码)_动漫代码大全可复制-CSDN博客 | |
3 | Python海绵宝宝(完整代码)_海绵宝宝编程代码-CSDN博客 |
4 | Python哆啦A梦①(完整代码)_二次元动漫片段代码-CSDN博客 |
5 | Python凯蒂猫(完整代码)_猫的代码-CSDN博客 |
6 | Python猫和老鼠(完整代码)_用python画杰瑞-CSDN博客 |
7 | Python开心消消乐小游戏(完整代码)_python草莓熊代码-CSDN博客 |
8 | Python皮卡丘①(完整代码)_用python画皮卡丘的代码-CSDN博客 |
Python皮卡丘②(完整代码)-CSDN博客 | |
Python皮卡丘③(完整代码)_pycharm生成比卡丘动画代码-CSDN博客 | |
炫酷系列 | |
1 | Python大雪纷飞(完整代码)_张万森 python-CSDN博客 |
Python一闪一闪亮晶晶(完整代码)_python实现星星闪烁-CSDN博客 | |
2 | Python黑客帝国字母雨(完整代码)_黑客python二进制雨-CSDN博客 |
3 | Python七彩花朵(完整代码)_利用python 代码画满屏飘七彩花朵-CSDN博客 |
4 | Python模拟星空(完整代码)_python星空特效代码-CSDN博客 |
5 | Python金榜题名(完整代码)_金榜题名代码-CSDN博客 |
6 | Python满天繁星(完整代码)_星星代码-CSDN博客 |
…… |
前言
Python绘制漂浮爱心的代码。
小海龟
老生常谈啦,在用python画樱花树前,我们先来了解一下turtle吧!
小海龟(Turtle)是Python中画图的一个重要的包(内置包),里面包含丰富的画图工具以及画图的各种功能,当你学会了用Turtle画图后,你可以画任何你想画的图案哦。
1.1 Turtle画板
Turtle的画板大小可以用turtle.screensize()函数来设置
turtle.screensize(width,height,bg)
设置画板的大小,包含宽和高,width为宽,height为高,bg为画布颜色
1.2 Turtle画笔
Turtle的画笔有几个常用的函数:
①turtle.penup():抬起画笔,此时移动画笔不会在画布上留下痕迹哦
②turtle.pendown():放下画笔,与turtle.penup相对应,放下画笔后就可以继续画画了(放下画笔后画画会在画布上留下痕迹)
③turtle.pensize():控制画笔的大小(可以根据需求自行定义画笔的大小哦)
④turtle.pencolor():控制画笔的颜色(可以自己在网上查阅所有python可以使用的颜色,python里面可以用的颜色有很多的哦)
⑤turtle.hideturtle():隐藏画笔(隐藏画笔以后画图时画笔就看不到了)
1.3 Turtle画图
在画图的过程中,我们经常要使用一些简单的移动函数:
①turtle.forward(x):将画笔向前移动x个像素(x可以理解为距离)
②turtle.backward(x):将画笔向后退x个像素(x可以理解为距离)
③turtle.left(n):将画笔向左旋转n度
④turtle.right(n):将画笔向右旋转n度
⑤turtle.speed():设置画笔画图的速度(1~10递增,0最快)
1.4 Turtle填色
在画好图后,我们经常需要对其进行填色,这里可以用turtle.fillcolor()函数,括号里写入你想填充的颜色即可。
在使用turtle.fillcolor()函数要注意其基本格式:
turtle.beginfill() #开始填充
turtle.fillcolor() #输入填充的颜色
turtle.endfill() #结束填充
1.5 Turtle写字
在完成整个画图后,我们可以使用turtle.write()函数进行写字
turtle.write(" ",move,align,font)
① 第一个位置双引号内填入要写的字
② move(可选):在默认情况下,move为false。如果move为true,则笔将移动到右下角
③ align(可选):可取值是left即左、center即中、right即右之一,是字符串格式
④ font(可选):字体三元组(fontname、fontsize、fonttype),fontname即字体名称(字符串格式,如“宋体”),fontsize即字体大小),fonttype即字体类型如:normal(普通)、bold(粗体)、italic(斜体)
漂浮爱心
爱心类
class Heart(): #每个爱心(爱心类)
def __init__(self):
self.r = ra.randint(10,15) #爱心的半径
self.x = ra.randint(-1000,1000) #爱心的横坐标
self.y = ra.randint(-500,500) #爱心的纵坐标
self.f = ra.uniform(-3.14,3.14) #爱心左右移动呈正弦函数
self.speed = ra.randint(5,10) #爱心移动速度
self.color = ra.choice(colors) #爱心的颜色
self.outline = 1 #爱心的外框大小(可不要)
这段代码定义了一个名为Heart
的类,该类表示一个爱心对象。在初始化方法__init__
中,每个爱心对象都具有以下属性:
r
: 表示爱心的半径,随机生成在10到15之间的整数。x
: 表示爱心的横坐标,随机生成在-1000到1000之间的整数。y
: 表示爱心的纵坐标,随机生成在-500到500之间的整数。f
: 表示爱心左右移动的正弦函数,随机生成在-3.14到3.14之间的浮点数。speed
: 表示爱心移动的速度,随机生成在5到10之间的整数。color
: 表示爱心的颜色,随机选择一个颜色。outline
: 表示爱心的外框大小,为默认值1(可不要)。这段代码是用于创建爱心对象的模板,每个实例化的爱心对象都会根据这些属性随机生成不同的值,以用于绘制多个不同特征的爱心。
爱心函数
def draw(self): #画爱心函数,就是用turtle画爱心
t.pensize(self.outline)
t.penup()
t.color(self.color)
t.goto(self.x, self.y)
t.pendown()
t.begin_fill()
t.fillcolor('pink')
t.setheading(120)
t.circle(self.r, 195)
t.fd(self.r * 2.4)
t.lt(90)
t.fd(self.r * 2.4)
t.circle(self.r, 195)
t.end_fill()
这段代码定义了一个名为draw
的方法,用于在Turtle图形库中绘制爱心形状。具体绘制的步骤包括:
- 设置画笔大小为
self.outline
。 - 抬起画笔。
- 设置画笔颜色为
self.color
,将画笔移动到爱心的起始位置(self.x, self.y)
。 - 落下画笔。
- 开始填充颜色,填充颜色设置为粉色'pink'。
- 设置Turtle方向为120度。
- 绘制半圆形状,半径为
self.r
,角度为195度。 - 向前移动
self.r * 2.4
个单位长度。 - 左转90度。
- 再次向前移动
self.r * 2.4
个单位长度。 - 绘制第二个半圆形状,半径为
self.r
,角度为195度。 - 结束填充颜色。
这个draw
方法实现了用Turtle图形库绘制爱心的功能,通过调用这个方法可以在图形界面上绘制出具有随机属性的爱心。
漂浮函数
def move(self): #爱心移动函数
if self.y <= 500: #当爱心还在画布中时
self.y += self.speed #设置上下移动速度
self.x += self.speed * math.sin(self.f) #设置左右移动速度
self.f += 0.1 #可以理解成标志,改变左右移动的方向
else: #当爱心漂出了画布时,重新生成一个爱心
self.r = ra.randint(10,15)
self.x = ra.randint(-1000,1000)
self.y = -500
self.f = ra.uniform(-3.14,3.14)
self.speed = ra.randint(5,10)
self.color = ra.choice(colors)
self.outline = 1
这段代码定义了一个名为move
的方法,用于控制爱心的移动。具体实现如下:
- 检查爱心是否仍在画布内(纵坐标y小于等于500): – 如果是,则更新爱心的纵坐标
self.y
,使其向下移动self.speed
个单位。 – 同时更新爱心的横坐标self.x
,使其按照正弦函数math.sin(self.f)
来左右移动。 – 增加标志self.f
的值,从而改变左右移动的方向。 - 如果爱心已经漂出画布: – 重新生成一个新的爱心,包括随机设置半径、横纵坐标、左右移动方向、移动速度、颜色等属性。
通过这个move
方法,可以实现让爱心在画布中上下移动,并且在漂出画布后重新生成一个新的爱心。
完整代码
https://want595.blog.csdn.net/article/details/134744929
尾声
我是一只有趣的兔子,感谢你的喜欢!
作者:Want595