基于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通过正则查找微博@(at)用户的方法
Mar 13 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
使用python3 实现插入数据到mysql
Mar 02 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 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
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
php工具型代码之印章抠图
2018/07/18 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
JavaScript数组常用方法
2015/03/02 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
python在控制台输出进度条的方法
2015/06/20 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
python如何对实例属性进行类型检查
2018/03/20 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
5款实用的python 工具推荐
2020/10/13 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
环保专项行动方案
2014/05/12 职场文书
实训报告范文大全
2014/11/04 职场文书
导游词之青岛崂山
2019/12/27 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers