Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
68e733fd
宇宙模拟器
项目概览
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看板
提交
68e733fd
编写于
12月 09, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
91a8e795
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
74 addition
and
0 deletion
+74
-0
sim_scenes/featured/earth_mars_clouds.py
sim_scenes/featured/earth_mars_clouds.py
+74
-0
未找到文件。
sim_scenes/featured/earth_mars_clouds.py
0 → 100644
浏览文件 @
68e733fd
# -*- coding:utf-8 -*-
# title :带有云层地球模拟
# description :带有云层地球模拟
# author :Python超人
# date :2023-05-01
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# ==============================================================================
from
bodies
import
Earth
from
common.consts
import
SECONDS_PER_HOUR
,
SECONDS_PER_DAY
from
sim_scenes.func
import
ursina_run
,
create_sphere_sky
from
sim_scenes.universe_sim_scenes
import
UniverseSimScenes
from
simulators.ursina.ursina_event
import
UrsinaEvent
if
__name__
==
'__main__'
:
"""
带有云层地球模拟
"""
mars
=
Earth
(
texture
=
"transformed/mars.jpg"
,
rotate_angle
=
0
,
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
size_scale
=
1
).
set_ignore_gravity
()
# 忽略引力
# 创建带有云层的地球
earth
=
Earth
(
texture
=
"earth_hd.jpg"
,
rotate_angle
=
0
,
init_position
=
[
1.5
*
mars
.
diameter
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
size_scale
=
1
)
# 创建云层(texture纹理图使用了透明云层的图片,云层的 size_scale 要稍微比火星大一点)
mars_clouds
=
Earth
(
name
=
"火星云层"
,
rotate_angle
=
0
,
texture
=
"transparent_clouds.png"
,
size_scale
=
1.001
,
parent
=
mars
)
# 创建云层(texture纹理图使用了透明云层的图片,云层的 size_scale 要稍微比地球大一点)
earth_clouds
=
Earth
(
name
=
"地球云层"
,
rotate_angle
=
0
,
texture
=
"transparent_clouds.png"
,
size_scale
=
1.001
,
parent
=
earth
)
bodies
=
[
mars
,
earth
,
earth_clouds
,
mars_clouds
]
current_angle
=
0
def
on_ready
():
global
current_angle
from
ursina
import
camera
# camera.fov = 30
# 运行前触发
# create_sphere_sky(scale=10000).rotation_y = 220
current_angle
=
earth
.
planet
.
rotation_y
def
on_timer_changed
(
time_data
):
global
current_angle
if
abs
(
earth
.
planet
.
rotation_y
-
current_angle
)
>
400
:
exit
(
0
)
UniverseSimScenes
.
set_window_size
((
1920
,
1079
),
False
)
# 订阅事件后,上面的函数功能才会起作用
# 运行前会触发 on_ready
UrsinaEvent
.
on_ready_subscription
(
on_ready
)
UrsinaEvent
.
on_timer_changed_subscription
(
on_timer_changed
)
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
SECONDS_PER_HOUR
/
2
,
position
=
(
1.5
*
earth
.
radius
,
0
,
-
30000
),
show_grid
=
False
,
cosmic_bg
=
''
,
show_camera_info
=
False
,
show_control_info
=
False
,
timer_enabled
=
True
,
view_closely
=
0.001
)
# 近距离观看 view_closely=True或0.001
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录