前言

用python画个雪花玩玩,源码在文末公众号哈。

雪花类

class Snow(): #雪花类
def __init__(self):
self.r = 6 #雪花的半径
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 = 5 #雪花的大小

画雪花

def snow(self): #画每个雪花
x=self.r #雪花的半径
t.pensize(self.outline) #雪花的大小
t.penup() #提笔
t.goto(self.x,self.y) #随机位置
t.pendown() #落笔
t.color(self.color) #雪花颜色
for i in range(6): #循环画六个雪花瓣
t.forward(x*5)
t.backward(x*2)
t.left(60)
t.forward(x*2)
t.backward(x*2)
t.right(120)
t.forward(x*2)
t.backward(x*2)
t.left(60)
t.backward(x*3)
t.right(60)

移动函数

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 = 6
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 = 5