如何使用python画满屏爱心?绘制动态满屏爱心方法
王涵
优草派
学习了这么久的python,有没有小伙伴想要编写一些浪漫一点的程序代码呢,为了提升大家的学习兴趣,小编这就来帮助大家了,接下来的这篇文章就来教大家编写动态满屏爱心的代码,大家可以马上动手操作起来啦。
画爱心的方法有很多,在前面的讲解海龟绘图知识点的文章中小编就有和大家举过画爱心的例子。在接下来的这一个代码中要实现非常多的爱心一起出现就需要使用一些简单的画爱心方式来进行,这样执行的速度就会更加的快。我们先来定义一个爱心类,这样在后面的调用就会非常的方便,绘制出这一个粉色的大爱心代码如下:
from math import sqrt from turtle import * class Heart: def __init__(self, x, y, size): self.size = size self.speed = size t = Turtle(visible=False, shape='circle') t.shapesize(size, size) color = (1, 1- size/4, 1-size/4) t.pencolor(color)t.fillcolor(color) t.penup() self.circle1 = t.clone() self.circle1.goto(x-sqrt(size*size*160)/2, y)self.circle2 = t.clone() self.circle2.goto(x+sqrt(size*size*160)/2, y)self.square = t.clone() self.square.shape("square") self.square.setheading(45) self.square.goto(x, y-sqrt(size * size * 160)/2)self.circle1.showturtle() self.circle2.showturtle() self.square.showturtle()
随后创建出一个列表,用来存放不同的爱心,从主函数中随即生成30个大小位置不同的爱心,并把它们存放在列表中,代码块如下:
loves = [] for i in range(30): love = Love(width/2 + randint(1, width), randint(-height/2,height/2), random()*3) loves.append(love)
下面就是要获得爱心的动态效果,还需要让所有的爱心进入无限的循环,进行重复的移动,所以代码应该试一下这样:
def move(self): self.circle1.setx(self.circle1.xcor()-self.speed) self.square.setx(self.square.xcor() - self.speed) self.circle2.setx(self.circle2.xcor() - self.speed)while True: for love in loves: love.move()
写到这一步,代码就差不多了,此时运行就可以发现爱心有了动态运行的效果,但是还需要完善一下,让代码能够有效的运用起来从而不需要 再增加新的代码来使得爱心增加,就可以把移动过的爱心放到指定的位置,然后下一次再继续使用,那么代码如下所示:
def moveTo(self, x, y): self.circle1.hideturtle() self.circle2.hideturtle() self.square.hideturtle() self.circle1.goto(x - sqrt(self.size * self.size * 160) / 2, y) self.circle2.goto(x + sqrt(self.size * self.size * 160) / 2, y) self.square.goto(x, y - sqrt(self.size * self.size * 160) / 2) self.circle1.showturtle() self.circle2.showturtle() self.square.showturtle() while True: for love in loves: love.move() if love.square.xcor() < -width / 2: love.moveTo(width / 2 + randint(1, width), randint(-height / 2, height / 2))
此时运行代码就可以发现所有的爱心动了起来,就已经达到了自己的预期效果。以上就是关于python编写动态满屏爱心的代码,大家可以动手进行实操啦。
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。