目录
有人说,张万森下雪了的意思是我想你了;也有人说,张万森下雪了就是表达一个男孩对于暗恋女孩的感受。而我觉得“张万森 下雪了”是一个含蓄的告白,小伙伴们觉得呢 ~ 本篇文章将用python画出“张万森,下雪了”,欢迎围观!
1. 实现效果
张万森,下雪了
2. 完整代码
#!/usr/bin/env python3
# _*_ coding : UTF-8 _*_
# 开发人员 :jly
# 开发时间 :2024/03/28 19:52:47
# 文件名称 :python_张万森,下雪了.py
# 开发工具 :Visual Studio Code
import turtle as tu
import random as ra
import time
tu.setup(1.0, 1.0)
tu.bgcolor('black') #设置画布颜色
tu.title("雪花")
t = tu.Pen()
t.ht() #隐藏画笔
colors = ['white'] #雪花的颜色列表
class Snow(): #雪花类
def __init__(self):
self.r = ra.uniform(2,4) #雪花的半径
self.x = ra.randint(-1000,1000) #雪花的横坐标
self.y = ra.randint(500,1000) #雪花的纵坐标
self.speed = ra.randint(5,20) #雪花移动速度
self.color = ra.choice(colors) #雪花的颜色
self.outline = 2 #雪花的大小
# def snow(self):
# t.pensize(self.outline) #雪花的大小
# t.penup() #提笔
# t.goto(self.x,self.y) #随机位置
# t.pendown() #落笔
# t.color(self.color) #雪花颜色
# t.begin_fill()
# t.fillcolor("white")
# t.circle(self.r)
# t.end_fill()
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 #设置上下移动速度
else: #当雪花漂出了画布时,重新生成一个雪花
self.r = ra.uniform(2,4)
self.x = ra.randint(-1000,1000)
self.y = 500
self.speed = ra.randint(5,20)
self.color = ra.choice(colors)
self.outline = 2
Snows = [] #用列表保存所有雪花
for i in range(595):
Snows.append(Snow())
t.penup()
t.goto(0, 0)
t.pendown()
t.pencolor("white")
t.write("张万森", align="center", font=("Comic Sans MS", 66, "bold"))
time.sleep(1)
t.clear()
time.sleep(1)
t.write("下雪了", align="center", font=("Comic Sans MS", 66, "bold"))
time.sleep(1)
t.clear()
time.sleep(1)
while True: #开始绘制
tu.tracer(0)
t.clear()
t.penup()
t.goto(0,0)
t.pendown()
t.write("我 好 想 你", align="center", font=("Comic Sans MS", 66, "bold"))
for i in range(199): #50个漂浮的雪花
Snows[i].move()
Snows[i].snow()
tu.update()
tu.mainloop()
3. 代码分析
Turtle入门
Python的turtle模块是一个绘图模块,可以创建各种形状和图案。使用Python的turtle模块进行绘图可以很简单且有趣。在Python中导入turtle模块需要使用以下代码:
import turtle
接下来我们来看一些基本的函数:
-
turtle.forward(distance):向前移动distance个单位长度
-
turtle.backward(distance):向后移动distance个单位长度
-
turtle.right(angle):向右转angle度
-
turtle.left(angle):向左转angle度
-
turtle.penup():抬起画笔,移动时不绘制图形
-
turtle.pendown():放下画笔,移动时绘制图形
-
turtle.pensize(width):设置画笔宽度
-
turtle.pencolor(color):设置画笔颜色
-
turtle.fillcolor(color):设置填充颜色
-
turtle.begin_fill():开始填充
-
turtle.end_fill():结束填充
下面是一个简单的例子:使用turtle绘制一个正方形
import turtle
# 创建一个画布
win = turtle.Screen()
# 设置画笔属性
turtle.pensize(4)
turtle.pencolor('blue')
# 绘制正方形
for i in range(4):
turtle.forward(100)
turtle.right(90)
# 关闭画布
win.exitonclick()
运行以上代码,将在屏幕上绘制一个蓝色正方形。
除了以上的基本函数,我们还可以使用turtle.circle()函数来绘制圆。
turtle.circle(radius, extent=None, steps=None):绘制圆形,radius为半径,extent为角度(可选参数),steps为边数(可选参数)
下面是一个绘制不同大小和颜色圆形的例子:
import turtle
# 创建一个画布
win = turtle.Screen()
# 绘制不同大小和颜色的圆形
turtle.pensize(4)
turtle.pencolor('red')
turtle.fillcolor('yellow')
turtle.begin_fill()
turtle.circle(50)
turtle.end_fill()
turtle.penup()
turtle.goto(0, -200)
turtle.pendown()
turtle.pencolor('green')
turtle.fillcolor('blue')
turtle.begin_fill()
turtle.circle(80)
turtle.end_fill()
# 关闭画布
win.exitonclick()
运行以上代码,将在屏幕上绘制一个黄色填充的红色圆和一个蓝色填充的绿色圆。
以上是一些基本的turtle函数介绍和简单的例子,可以帮助你快速入门turtle的绘图方法。同时,你还可以使用其他的函数和参数来创建更加复杂的图案和形状。
标签:turtle,Python,下雪,self,tu,雪花,color,ra,张万森 From: https://blog.csdn.net/jly_20220520/article/details/137122637