Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
0ab2d9f7
宇宙模拟器
项目概览
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看板
提交
0ab2d9f7
编写于
4月 16, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
39013a21
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
78 addition
and
0 deletion
+78
-0
sim_scenes/science/four_seasons.py
sim_scenes/science/four_seasons.py
+78
-0
未找到文件。
sim_scenes/science/four_seasons.py
0 → 100644
浏览文件 @
0ab2d9f7
# -*- coding:utf-8 -*-
# title :太阳、地球场景模拟
# description :太阳、地球场景模拟
# author :Python超人
# date :2023-02-11
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# ==============================================================================
from
bodies
import
Sun
,
Earth
,
Sirius
from
common.consts
import
SECONDS_PER_WEEK
,
SECONDS_PER_DAY
,
AU
from
sim_scenes.func
import
ursina_run
from
simulators.ursina.entities.body_timer
import
TimeData
from
simulators.ursina.ursina_event
import
UrsinaEvent
from
ursina
import
camera
if
__name__
==
'__main__'
:
"""
太阳、地球
"""
bodies
=
[
Sun
(
size_scale
=
5e1
,
texture
=
"transparent.png"
),
# 太阳透明
Earth
(
name
=
"中国春天"
,
size_scale
=
2e3
,
texture
=
"earth_hd.jpg"
,
init_position
=
[
-
1
*
AU
,
0
,
0
],
init_velocity
=
[
0
,
0
,
-
29.79
]),
Earth
(
name
=
"中国夏天"
,
size_scale
=
2e3
,
texture
=
"earth_hd.jpg"
,
init_position
=
[
0
,
0
,
-
1
*
AU
],
init_velocity
=
[
29.79
,
0
,
0
]),
Earth
(
name
=
"中国秋天"
,
size_scale
=
2e3
,
texture
=
"earth_hd.jpg"
,
init_position
=
[
1
*
AU
,
0
,
0
],
init_velocity
=
[
0
,
0
,
29.79
]),
Earth
(
name
=
"中国冬天"
,
size_scale
=
2e3
,
texture
=
"earth_hd.jpg"
,
init_position
=
[
0
,
0
,
1
*
AU
],
init_velocity
=
[
-
29.79
,
0
,
0
]),
]
sun
=
bodies
[
0
]
earth_1
=
bodies
[
1
]
earth_2
=
bodies
[
2
]
earth_3
=
bodies
[
3
]
earth_4
=
bodies
[
4
]
def
on_ready
():
# 摄像机跟随地球(模拟在地球上看到的效果)
# camera.position = earth.planet.position
# camera.forward = -10 * AU
# # camera.x = camera.x - AU / 100
# camera.look_at(earth.planet)
earth_1
.
planet
.
rotation_y
-=
205
# 春天
earth_2
.
planet
.
rotation_y
-=
0
# 夏天
earth_3
.
planet
.
rotation_y
-=
100
# 秋天
earth_4
.
planet
.
rotation_y
-=
175
# 冬天
camera
.
parent
=
sun
.
planet
camera
.
look_at
(
earth_2
.
planet
)
# camera.position=[0,0,0]
pass
# if hasattr(camera, "sky"):
# # 摄像机跟随地球后,需要对深空背景进行调整,否则看到的是黑色背景
# camera.sky.scale = 800
# camera.clip_plane_near = 0.1
# camera.clip_plane_far = 1000000
# # camera.fov = 40
def
on_timer_changed
(
time_data
:
TimeData
):
# 时时刻刻的让地球看向太阳(摄像机跟随地球看向太阳)
# earth.planet.look_at(sun.planet)
# earth.planet.rotation_z = 0
# camera.look_at(earth.planet)
pass
UrsinaEvent
.
on_ready_subscription
(
on_ready
)
UrsinaEvent
.
on_timer_changed_subscription
(
on_timer_changed
)
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
1
,
position
=
(
0
,
0
,
0
),
show_name
=
True
,
show_trail
=
True
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录