猫史档案馆


【Python作品分享】闪烁星空【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

闪烁星空

 

【作品源代码】

'''
闪烁星空
微信公众号:学思营  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


回复

上一页1 页 / 共 0下一页