Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
64e2ac9b
宇宙模拟器
项目概览
Python_超人
/
宇宙模拟器
通知
19
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
宇宙模拟器
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
64e2ac9b
编写于
7月 01, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
40bedd1d
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
98 addition
and
10 deletion
+98
-10
bodies/__init__.py
bodies/__init__.py
+1
-0
bodies/asteroids.py
bodies/asteroids.py
+11
-5
bodies/habitable_zone.py
bodies/habitable_zone.py
+11
-5
bodies/torus_zone.py
bodies/torus_zone.py
+75
-0
未找到文件。
bodies/__init__.py
浏览文件 @
64e2ac9b
...
@@ -11,6 +11,7 @@ from bodies.uranus import Uranus
...
@@ -11,6 +11,7 @@ from bodies.uranus import Uranus
from
bodies.venus
import
Venus
from
bodies.venus
import
Venus
from
bodies.moon
import
Moon
from
bodies.moon
import
Moon
from
bodies.asteroid
import
Asteroid
from
bodies.asteroid
import
Asteroid
from
bodies.torus_zone
import
TorusZone
from
bodies.asteroids
import
Asteroids
from
bodies.asteroids
import
Asteroids
from
bodies.habitable_zone
import
HabitableZone
from
bodies.habitable_zone
import
HabitableZone
...
...
bodies/asteroids.py
浏览文件 @
64e2ac9b
...
@@ -7,9 +7,10 @@
...
@@ -7,9 +7,10 @@
# python_version :3.8
# python_version :3.8
# ==============================================================================
# ==============================================================================
from
bodies.body
import
Body
,
AU
from
bodies.body
import
Body
,
AU
from
bodies.torus_zone
import
TorusZone
class
Asteroids
(
Body
):
class
Asteroids
(
TorusZone
):
"""
"""
小行星群
小行星群
质量 (kg):~4.1×1010 kg
质量 (kg):~4.1×1010 kg
...
@@ -29,7 +30,11 @@ class Asteroids(Body):
...
@@ -29,7 +30,11 @@ class Asteroids(Body):
def
__init__
(
self
,
name
=
"小行星群"
,
mass
=
1.9891e30
,
def
__init__
(
self
,
name
=
"小行星群"
,
mass
=
1.9891e30
,
init_position
=
[
0
,
0
,
0
],
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
texture
=
"asteroids.png"
,
size_scale
=
1.0
,
texture
=
"asteroids.png"
,
inner_radius
=
2.17
,
outer_radius
=
3.64
,
subdivisions
=
64
,
size_scale
=
1.0
,
distance_scale
=
1.0
,
distance_scale
=
1.0
,
rotation_speed
=
0.002
,
# 小行星绕太阳转一圈的时间在数年到几十年之间不等。
rotation_speed
=
0.002
,
# 小行星绕太阳转一圈的时间在数年到几十年之间不等。
parent
=
None
):
parent
=
None
):
...
@@ -38,8 +43,9 @@ class Asteroids(Body):
...
@@ -38,8 +43,9 @@ class Asteroids(Body):
"mass"
:
mass
,
"mass"
:
mass
,
"init_position"
:
init_position
,
"init_position"
:
init_position
,
"init_velocity"
:
init_velocity
,
"init_velocity"
:
init_velocity
,
"density"
:
1.408e3
,
"inner_radius"
:
inner_radius
,
"color"
:
(
179
,
231
,
255
),
"outer_radius"
:
outer_radius
,
"subdivisions"
:
subdivisions
,
"texture"
:
texture
,
"texture"
:
texture
,
"size_scale"
:
size_scale
,
"size_scale"
:
size_scale
,
"distance_scale"
:
distance_scale
,
"distance_scale"
:
distance_scale
,
...
@@ -51,7 +57,7 @@ class Asteroids(Body):
...
@@ -51,7 +57,7 @@ class Asteroids(Body):
# self.torus_stars = True
# self.torus_stars = True
# 环状星群带(inner_radius, outer_radius, subdivisions)
# 环状星群带(inner_radius, outer_radius, subdivisions)
# inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度
# inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度
self
.
torus_zone
=
2.17
,
3.64
,
64
#
self.torus_zone = 2.17, 3.64, 64
def
ignore_gravity_with
(
self
,
body
):
def
ignore_gravity_with
(
self
,
body
):
"""
"""
...
...
bodies/habitable_zone.py
浏览文件 @
64e2ac9b
...
@@ -7,9 +7,10 @@
...
@@ -7,9 +7,10 @@
# python_version :3.8
# python_version :3.8
# ==============================================================================
# ==============================================================================
from
bodies.body
import
Body
,
AU
from
bodies.body
import
Body
,
AU
from
bodies.torus_zone
import
TorusZone
class
HabitableZone
(
Body
):
class
HabitableZone
(
TorusZone
):
"""
"""
模拟太阳系宜居带:
模拟太阳系宜居带:
目前认为 太阳系 的宜居带范围是从距离太阳0.95个天文单位 (约1.42亿千米)到 2.4个天文单位(约3.59亿千米)的范围为宜居带,
目前认为 太阳系 的宜居带范围是从距离太阳0.95个天文单位 (约1.42亿千米)到 2.4个天文单位(约3.59亿千米)的范围为宜居带,
...
@@ -19,7 +20,11 @@ class HabitableZone(Body):
...
@@ -19,7 +20,11 @@ class HabitableZone(Body):
def
__init__
(
self
,
name
=
"宜居带"
,
mass
=
1.9891e30
,
def
__init__
(
self
,
name
=
"宜居带"
,
mass
=
1.9891e30
,
init_position
=
[
0
,
0
,
0
],
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
texture
=
"green_alpha_1.png"
,
size_scale
=
1.0
,
texture
=
"green_alpha_1.png"
,
inner_radius
=
0.95
,
outer_radius
=
1.67
,
subdivisions
=
64
,
size_scale
=
1.0
,
distance_scale
=
1.0
,
distance_scale
=
1.0
,
rotation_speed
=
0
,
rotation_speed
=
0
,
parent
=
None
):
parent
=
None
):
...
@@ -28,8 +33,9 @@ class HabitableZone(Body):
...
@@ -28,8 +33,9 @@ class HabitableZone(Body):
"mass"
:
mass
,
"mass"
:
mass
,
"init_position"
:
init_position
,
"init_position"
:
init_position
,
"init_velocity"
:
init_velocity
,
"init_velocity"
:
init_velocity
,
"density"
:
1.408e3
,
"inner_radius"
:
inner_radius
,
"color"
:
(
179
,
231
,
255
),
"outer_radius"
:
outer_radius
,
"subdivisions"
:
subdivisions
,
"texture"
:
texture
,
"texture"
:
texture
,
"size_scale"
:
size_scale
,
"size_scale"
:
size_scale
,
"distance_scale"
:
distance_scale
,
"distance_scale"
:
distance_scale
,
...
@@ -39,7 +45,7 @@ class HabitableZone(Body):
...
@@ -39,7 +45,7 @@ class HabitableZone(Body):
super
().
__init__
(
**
params
)
super
().
__init__
(
**
params
)
# 环状宜居带(inner_radius, outer_radius, subdivisions)
# 环状宜居带(inner_radius, outer_radius, subdivisions)
# inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度
# inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度
self
.
torus_zone
=
0.95
,
1.67
,
64
#
self.torus_zone = 0.95, 1.67, 64
# 使用 texture="red_green_blue.png",
# 使用 texture="red_green_blue.png",
# self.torus_zone = 0.20, 6.00, 64
# self.torus_zone = 0.20, 6.00, 64
...
...
bodies/torus_zone.py
0 → 100644
浏览文件 @
64e2ac9b
# -*- coding:utf-8 -*-
# title :小行星
# description :小行星
# author :Python超人
# date :2023-07-01
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# ==============================================================================
from
bodies.body
import
Body
,
AU
class
TorusZone
(
Body
):
"""
模拟环形区域:
"""
def
__init__
(
self
,
name
=
"宜居带"
,
mass
=
1.9891e30
,
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
texture
=
"green_alpha_1.png"
,
inner_radius
=
0.95
,
outer_radius
=
1.67
,
subdivisions
=
64
,
size_scale
=
1.0
,
distance_scale
=
1.0
,
rotation_speed
=
0
,
parent
=
None
):
"""
@param name: 天体名称
@param mass: 天体质量 (kg)
@param init_position: 初始位置 (km)
@param init_velocity: 初始速度 (km/s)
@param texture: 纹理图片
@param inner_radius: 内圆半径
@param outer_radius: 外圆半径
@param subdivisions: 细分数,控制圆环的细节和精度
@param size_scale: 尺寸缩放
@param distance_scale: 距离缩放
@param rotation_speed: 自旋速度(度/小时)
@param parent: 天体的父对象
"""
params
=
{
"name"
:
name
,
"mass"
:
mass
,
"init_position"
:
init_position
,
"init_velocity"
:
init_velocity
,
"density"
:
1.408e3
,
"color"
:
(
179
,
231
,
255
),
"texture"
:
texture
,
"size_scale"
:
size_scale
,
"distance_scale"
:
distance_scale
,
"rotation_speed"
:
rotation_speed
,
"parent"
:
parent
}
super
().
__init__
(
**
params
)
# 环状带(inner_radius, outer_radius, subdivisions)
self
.
torus_zone
=
inner_radius
,
outer_radius
,
subdivisions
def
ignore_gravity_with
(
self
,
body
):
"""
是否忽略指定天体的引力
@param body:
@return:
"""
# 小行星只对恒星有引力,忽略其他行星的引力
# if body.is_fixed_star:
return
True
# return True
if
__name__
==
'__main__'
:
habitable_zone
=
HabitableZone
()
print
(
habitable_zone
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录