基于Python实现流星雨效果的绘制
目录
- 1 前言
- 2 霍金说移民外太空
- 3 浪漫的流星雨展示
- 4 Python代码
1 前言
我们先给个小故事,提一下大家兴趣;然后我给出论据,得出结论。最后再浪漫的流星雨表白代码奉上,还有我自创的一首诗。开始啦:
2 霍金说移民外太空
霍金说我们将来外星上生存;埃隆.马斯克也是这样想的。
我前面讲外星人来不到地球,这个道理已经很清楚。我再说几个数据,大家听听,我们且不要说到更远的外星,我们人类今天登上月球,把一个字航员送上月球,他在月球上待一分钟,要消耗地球一百万美元的资源才能在月球上待一分钟 。
我们说未来在火星上殖民,想想你在月球上一个人待一分钟,要消耗地球一百万美元的资源,你在火星上殖民几千人、几万人,你得把整个地球资源毁灭掉,都调到火星上去。然后你只把七十亿人调过去了几千、几万人,然后他在那可能死得更快,这根本不是出路,这怎么会成为出路呢?
我们再看,移居外星,离我们地球最近的另一个恒星系叫半人马座。半人马座,阿尔法星
也叫比邻星。大家注意,这都是恒星,比邻星距离太阳最近,有多近? 4.2光年,光以每秒钟三十万公里,走4.2年,就这我们还不知道比邻星的那个恒星旁边有没有行星。
就算有行星有没有宜居行星、类地行星。这我们还全然不知道。我们就假定那个地方有好了另一个地球,你按照今天人类火箭和卫星的最高速度,你单程从地球上飞到比邻星,需要一万五千年到三万年。
请注意我们文明史,文明有文字,以后的文明迄今才五千年,你单程飞到那个地方要一万五千年以上。我说过有没有行星都不知道。这个前途存在吗?根本不存在。就像外星人来不了我们这儿一样,我们也到不了任何外星存在。
我们今天连太阳系都没有走出去,没有在太阳系的任何一个行星上殖民,所以移民外星根本不是出路。
3 浪漫的流星雨展示
动态视频最近几天由于后台服务器升级,所以视频过几天我上传上来。
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流星雨内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!