木星及其卫星人机交互课设 - 可视化探索木星的奥秘
木星及其卫星人机交互课设
本课设使用 Python 语言实现了一个关于木星及其卫星的人机交互程序,用户可以通过交互界面查看木星的基本信息、表面特征、卫星信息,并以动画形式观察木星及其卫星的轨道运动。
功能介绍
- 显示木星的基本信息: 包括木星的直径、质量、轨道等基本参数。
- 显示木星的表面特征: 通过图像展示木星的大红斑和其他特征。
- 显示木星的卫星: 列出木星的主要卫星,并提供它们的基本信息和图像。
- 显示木星的轨道: 通过动画以及 plotly 实时可视化展示木星和其卫星的轨道运动。
- 提供交互式控制: 允许用户通过按钮选择不同的功能切换显示内容。
代码示例
import matplotlib.pyplot as plt
import plotly.graph_objects as go
from IPython.display import Image, display
class Jupiter:
def __init__(self):
self.diameter = 139820 # 千米
self.mass = 1.898e27 # 千克
self.orbit = 778.5 # 百万千米
def display_basic_info(self):
print('Jupiter's basic information:')
print('Diameter: {} km'.format(self.diameter))
print('Mass: {} kg'.format(self.mass))
print('Orbit: {} million km'.format(self.orbit))
def display_surface_features(self):
display(Image('jupiter_surface.jpg')) # 展示木星的表面特征图像
def display_satellites(self):
print('Jupiter's major satellites:')
satellites = {
'Io': {
'diameter': 3643,
'image': 'io.jpg'
},
'Europa': {
'diameter': 3121,
'image': 'europa.jpg'
},
'Ganymede': {
'diameter': 5262,
'image': 'ganymede.jpg'
},
'Callisto': {
'diameter': 4821,
'image': 'callisto.jpg'
}
}
for satellite, info in satellites.items():
print('{} - Diameter: {} km'.format(satellite, info['diameter']))
display(Image(info['image'])) # 展示卫星的图像
def display_orbit(self):
# 使用Plotly动画展示木星和其卫星的轨道运动
fig = go.Figure()
fig.add_trace(go.Scatter(x=[0], y=[0], mode='markers', name='Jupiter'))
fig.add_trace(go.Scatter(x=[0], y=[0], mode='markers', name='Io'))
fig.add_trace(go.Scatter(x=[0], y=[0], mode='markers', name='Europa'))
fig.add_trace(go.Scatter(x=[0], y=[0], mode='markers', name='Ganymede'))
fig.add_trace(go.Scatter(x=[0], y=[0], mode='markers', name='Callisto'))
fig.update_layout(
title='Jupiter and Satellites Orbit',
xaxis_title='X',
yaxis_title='Y',
showlegend=True
)
fig.show()
def display_interactive_controls(self):
while True:
print('Choose an option:')
print('1. Display Jupiter's basic information')
print('2. Display Jupiter's surface features')
print('3. Display Jupiter's satellites')
print('4. Display Jupiter's orbit')
print('5. Exit')
option = input('Enter your choice (1-5): ')
if option == '1':
self.display_basic_info()
elif option == '2':
self.display_surface_features()
elif option == '3':
self.display_satellites()
elif option == '4':
self.display_orbit()
elif option == '5':
print('Exiting...')
break
else:
print('Invalid option. Please try again.')
jupiter = Jupiter()
jupiter.display_interactive_controls()
注意
- 该代码示例中的图像文件(例如
jupiter_surface.jpg、io.jpg等)需要与代码文件位于同一目录下。您需要准备相应的图像文件,并将其命名为正确的文件名,以使代码能够正确加载和显示图像。 - 为了运行使用Plotly进行动画的部分,您需要安装Plotly库,可以使用以下命令安装:
pip install plotly
希望对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/o4VN 著作权归作者所有。请勿转载和采集!