用户:
e国阳光查看:0 回复:0 评论:0 创建时间:2021-10-26T16:19:12
【作品展示】

【作品介绍】
闪烁星空
【作品源代码】
'''
闪烁星空
微信公众号:学思营 xuesying
'''
import random # 导入随机数模块
import turtle as t # 导入海龟画图并把它重命名为t
#初始化海龟
t.title("闪烁星空") # 设置标题
t.bgcolor("#010104") # 设置星空底色
t.setup(500, 500) # 把窗口初始化为500x500
t.screensize(480, 480) # 画布大小480x480
t.speed(0) # 速度最快
#生成星星随机位置
one_size = 20, 20 # 每个星星占位大小20x20
pnum_x = 480//one_size[0] # 每行位置数
pnum_y = 480//one_size[1] # 每列位置数
pnum = pnum_x * pnum_y # 位置数
ps = [i for i in range(pnum)] # 位置列表
snum = pnum // 10 # 星星数占比十分之一
sps = random.sample(ps, snum) # 星星随机位置
#绘制星星
t.pencolor("#FFEEEE") # 设置画笔颜色为白色
t.fillcolor("#FFEEEE") # 设置填充颜色为白色
t.begin_poly() # 开始记录多边形
for i in range(5):
t.seth(72*i) # 每个角增加36度
t.fd(5)
t.left(180-72) # 三角形外角
t.fd(5)
t.end_poly() # 结束记录多边形
t.up()
star = t.get_poly() # 提取多边形
t.register_shape("star", star) # 登记多边形
t.shape("star") # 采用自定义海龟
t.clear() # 清除所画图形
#生成星星海龟
sxys = [] # 星星海龟坐标
for p in sps:
_x = ((p % pnum_x)+0.5)*one_size[0]-240 # x坐标
_y = 240-(p//pnum_x+0.5)*one_size[1] # y坐标
t.setpos(_x, _y) # 移动海龟到指定位置
sxys.append(t.clone()) # 加入克隆海龟坐标
t.ht() # 隐藏默认海龟
#星星闪烁
while True:
temp_sxys = random.sample(sxys, snum//2)
for s in temp_sxys: # 隐藏
s.ht()
for s in temp_sxys: # 显示
s.st()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn