有一项作业是关于木星及其卫星的人机交互课设请实现如下功能1 显示木星的基本信息:包括木星的直径、质量、轨道等基本参数。2 显示木星的表面特征:通过图像展示木星的大红斑和其他特征。3 显示木星的卫星:列出木星的主要卫星并提供它们的基本信息和图像。4 显示木星的轨道:通过动画以及plotly实时可视化展示木星和其卫星的轨道运动。5 提供交互式控制:允许用户通过按钮选择不同的功能切换显示内容。请完成这个
以下是一个简单的代码示例,实现了上述功能:
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
希望对您有所帮助
原文地址: http://www.cveoy.top/t/topic/hB7Q 著作权归作者所有。请勿转载和采集!