python 行星轨道
时间: 2023-11-17 21:03:29 浏览: 142
以下是一个简单的Python行星轨道模拟程序,其中包括太阳、地球和月亮的轨道运动。该程序使用了Pygame库来实现图形化界面。
```python
import pygame
import math
# 初始化Pygame
pygame.init()
# 设置窗口大小
size = (800, 600)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Solar System")
# 加载图片
sun = pygame.image.load(r"F:/solar-system/image/sun_bg.png")
earth = pygame.image.load(r"F:/solar-system/image/earth_bg.png")
moon = pygame.image.load(r"F:/solar-system/image/moon_bg.png")
# 设置初始位置和速度
pos_e_x, pos_e_y = 400, 200
pos_m_x, pos_m_y = pos_e_x + 50, pos_e_y + 10
speed_e = 0.1
speed_m = 0.2
roll_e = 0
roll_m = 0
# 游戏循环
done = False
clock = pygame.time.Clock()
while not done:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
# 清屏
screen.fill((0, 0, 0))
# 绘制太阳
screen.blit(pygame.transform.scale(sun, (170, 170)), (327, 167))
# 计算地球位置
roll_e += speed_e
pos_e_x = int(400 + 150 * math.sin(roll_e))
pos_e_y = int(300 + 150 * math.cos(roll_e))
# 绘制地球
screen.blit(pygame.transform.scale(earth, (50, 50)), (pos_e_x, pos_e_y))
# 计算月亮位置
roll_m += speed_m
pos_m_x = int(pos_e_x + 50 * math.sin(roll_m))
pos_m_y = int(pos_e_y + 50 * math.cos(roll_m))
# 绘制月亮
screen.blit(pygame.transform.scale(moon, (20, 20)), (pos_m_x, pos_m_y))
# 更新屏幕
pygame.display.flip()
# 控制帧率
clock.tick(60)
# 退出Pygame
pygame.quit()
```
阅读全文