基于Python实现流星雨效果的绘制


Posted in Python onMarch 18, 2022

1 前言

我们先给个小故事,提一下大家兴趣;然后我给出论据,得出结论。最后再浪漫的流星雨表白代码奉上,还有我自创的一首诗。开始啦:

  

基于Python实现流星雨效果的绘制

2 霍金说移民外太空

霍金说我们将来外星上生存;埃隆.马斯克也是这样想的。

我前面讲外星人来不到地球,这个道理已经很清楚。我再说几个数据,大家听听,我们且不要说到更远的外星,我们人类今天登上月球,把一个字航员送上月球,他在月球上待一分钟,要消耗地球一百万美元的资源才能在月球上待一分钟 。

我们说未来在火星上殖民,想想你在月球上一个人待一分钟,要消耗地球一百万美元的资源,你在火星上殖民几千人、几万人,你得把整个地球资源毁灭掉,都调到火星上去。然后你只把七十亿人调过去了几千、几万人,然后他在那可能死得更快,这根本不是出路,这怎么会成为出路呢?

我们再看,移居外星,离我们地球最近的另一个恒星系叫半人马座。半人马座,阿尔法星

也叫比邻星。大家注意,这都是恒星,比邻星距离太阳最近,有多近?  4.2光年,光以每秒钟三十万公里,走4.2年,就这我们还不知道比邻星的那个恒星旁边有没有行星。

就算有行星有没有宜居行星、类地行星。这我们还全然不知道。我们就假定那个地方有好了另一个地球,你按照今天人类火箭和卫星的最高速度,你单程从地球上飞到比邻星,需要一万五千年到三万年。

请注意我们文明史,文明有文字,以后的文明迄今才五千年,你单程飞到那个地方要一万五千年以上。我说过有没有行星都不知道。这个前途存在吗?根本不存在。就像外星人来不了我们这儿一样,我们也到不了任何外星存在。

我们今天连太阳系都没有走出去,没有在太阳系的任何一个行星上殖民,所以移民外星根本不是出路。

3 浪漫的流星雨展示 

基于Python实现流星雨效果的绘制

基于Python实现流星雨效果的绘制

动态视频最近几天由于后台服务器升级,所以视频过几天我上传上来。 

4 Python代码 

def bgpic(self, picname=None):
    """Set background image or return name of current backgroundimage.
    Optional argument:
    picname -- a string, name of a gif-file or "nopic".
    If picname is a filename, set the corresponding image as background.
    If picname is "nopic", delete backgroundimage, if present.
    If picname is None, return the filename of the current backgroundimage.
    Example (for a TurtleScreen instance named screen):
    >>> screen.bgpic()
    'nopic'
    >>> screen.bgpic("landscape.gif")
    >>> screen.bgpic()
    'landscape.gif'
    """
    if picname is None:
        return self._bgpicname
    if picname not in self._bgpics:
        self._bgpics[picname] = self._image(picname)
    self._setbgpic(self._bgpic, self._bgpics[picname])
    self._bgpicname = picname
 
 
# coding: utf-8
import pygame
import os
import sys
from pygame.locals import *
 
os.chdir('E:/星空下的告白')
os.getcwd()
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load("星空之美.mp3")
# pygame.mixer.music.set_volume(0.4)
pygame.mixer.music.play()
bg_size = width, height = 300, 200
bg_rgb = (255, 255, 255)
screen1 = pygame.display.set_mode(bg_size)
pygame.display.set_caption("告白音乐")
clock = pygame.time.Clock()
pause_rect = pause_image.get_rect()
print(pause_rect.width, pause_rect.height)
pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2
from turtle import *
from random import random, randint
 
os.chdir('E:星空下的告白')
screen = Screen()
width, height = 900, 700
screen.setup(width, height)
screen.title("浪漫的流星雨")
screen.bgcolor("black")
screen.mode("logo")
screen.delay(0)
printer = Turtle()
printer.hideturtle()
printer.penup()
printer.color('red')
printer.goto(-100, -350)
printer.write("宇宙广阔(弱水三千)""\n\n", move=True, align="left", font=("Italic", 30, "bold"))
printer.goto(-50, -400)
printer.write("只寻你一颗!(只取一瓢饮!)\n\n", move=True, align="left", font=("Italic", 30, "bold"))
t = Turtle(visible=False, shape='circle')
t.pencolor("white")
t.fillcolor("white")
t.penup()
t.setheading(-90)
t.goto(width / 2, randint(-height / 2, height / 2))
stars = []
for i in range(300):
    star = t.clone()
    s = random() / 3
    if s > 0.01 and s < 0.03:
        star.pencolor("black")
        star.fillcolor("black")
    elif s > 0.03 and s < 0.04:
        star.pencolor("lightcoral")
        star.fillcolor("lightcoral")
    elif s > 0.05 and s < 0.1:
        star.pencolor("green")
        star.fillcolor("green")
    elif s > 0.15 and s < 0.16:
        star.pencolor("yellow")
        star.fillcolor("yellow")
    elif s > 0.19 and s < 0.2:
        star.pencolor("red")
        star.fillcolor("red")
    elif s > 0.21 and s < 0.22:
        star.pencolor("purple")
        star.fillcolor("purple")
    elif s > 0.29 and s < 0.3:
        star.pencolor("darkorange")
        star.fillcolor("darkorange")
    elif s > 0.31 and s < 0.32:
        star.pencolor("red")
        star.fillcolor("yellow")
    elif s > 0.32 and s < 0.33:
        star.pencolor("yellow")
        star.fillcolor("white")
    star.shapesize(s, s)
    star.speed(int(s * 30))
    star.setx(width / 2 + randint(1, width))
    star.sety(randint(-height / 2, height / 2))
    # star.showturtle()
    stars.append(star)
i = 0
pause = False
while True:
    i += 0
    for star in stars:
 
        star.setx(star.xcor() - 3 * star.speed())
        if star.xcor() < -width / 2:
            star.hideturtle()
            star.setx(width / 2 + randint(1, width))
            star.sety(randint(-height / 2, height / 2))
            star.showturtle()
    if i >= 100:
        break
 
    # 查找队列事件
    for event in pygame.event.get():
        # 查找点击关闭窗口事件
        if event.type == QUIT:
            sys.exit
        # 查找鼠标左右击事件
        if event.type == MOUSEBUTTONDOWN:
            if event.button == 1:
                pause = not pause
            if event.button == 3:
                pause = not pause
 
        if event.type == KEYDOWN:
            if event.key == K_SPACE:
                pause = not pause
    screen1.fill(bg_rgb)
    if pause:
        pygame.mixer.music.pause()
        screen1.blit(pause_image, pause_rect)
    else:
        pygame.mixer.music.unpause()
        screen1.blit(play_image, pause_rect)
    pygame.display.flip()
    clock.tick(30)

到此这篇关于基于Python实现流星雨效果的绘制的文章就介绍到这了,更多相关Python流星雨内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
python实现决策树ID3算法的示例代码
May 30 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
Django中使用Celery的教程详解
Aug 24 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
python如何把字符串类型list转换成list
Feb 18 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
PyCharm配置anaconda环境的步骤详解
Jul 31 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
Python基础 括号()[]{}的详解
Nov 07 Python
Python中with上下文管理协议的作用及用法
Mar 18 #Python
python 判断文件或文件夹是否存在
Mar 18 #Python
分享Python获取本机IP地址的几种方法
Mar 17 #Python
使用python求解迷宫问题的三种实现方法
Python超详细分步解析随机漫步
yolov5返回坐标的方法实例
Mar 17 #Python
PyTorch中的torch.cat简单介绍
Mar 17 #Python
You might like
使用 MySQL Date/Time 类型
2008/03/26 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
Python3基础之输入和输出实例分析
2014/08/18 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
干部现实表现材料
2014/02/13 职场文书
初中军训感想300字
2014/03/05 职场文书
财务总监管理职责范文
2014/03/09 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
工作证明格式及范本
2014/09/12 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
房产公证书样本
2015/01/23 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
Linux安装apache服务器的配置过程
2021/11/27 Servers
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server