Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
太阳系三体模拟器
提交
dd23ef37
太阳系三体模拟器
项目概览
Python_超人
/
太阳系三体模拟器
通知
1075
Star
131
Fork
128
代码
文件
提交
分支
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看板
提交
dd23ef37
编写于
3月 16, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
太阳系三体模拟器
上级
a73d213a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
16 deletion
+17
-16
simulators/views/ursina_mesh.py
simulators/views/ursina_mesh.py
+16
-15
simulators/views/ursina_view.py
simulators/views/ursina_view.py
+1
-1
未找到文件。
simulators/views/ursina_mesh.py
浏览文件 @
dd23ef37
...
...
@@ -79,7 +79,7 @@ def create_body_torus(inner_radius, outer_radius, subdivisions):
# 计算圆环顶点位置
x
=
(
outer_radius
+
inner_radius
*
math
.
cos
(
phi
))
*
math
.
cos
(
theta
)
y
=
inner_radius
*
math
.
sin
(
phi
)
*
(
inner_radius
)
/
2
y
=
inner_radius
*
math
.
sin
(
phi
)
*
(
inner_radius
)
/
2
z
=
(
outer_radius
+
inner_radius
*
math
.
cos
(
phi
))
*
math
.
sin
(
theta
)
# 计算圆环顶点法向量
...
...
@@ -113,7 +113,7 @@ def create_body_torus(inner_radius, outer_radius, subdivisions):
return
mesh
def
create_torus
(
inner_radius
,
outer_radius
,
subdivisions
):
def
create_torus
(
inner_radius
,
outer_radius
,
subdivisions
,
repeat
=
1
):
verts
=
[]
tris
=
[]
uvs
=
[]
...
...
@@ -130,21 +130,22 @@ def create_torus(inner_radius, outer_radius, subdivisions):
outer_x
=
x
*
outer_radius
outer_y
=
y
*
outer_radius
if
angle
==
0
:
if
i
%
int
(
subdivisions
/
repeat
)
==
0
:
verts
.
append
((
inner_x
,
inner_y
,
0
))
verts
.
append
((
outer_x
,
outer_y
,
0
))
uvs
.
append
((
1.0
,
0.0
))
uvs
.
append
((
1.0
,
1.0
))
verts
.
append
((
inner_x
,
inner_y
,
0
))
verts
.
append
((
outer_x
,
outer_y
,
0
))
# create uvs
u
=
angle
/
360
uvs
.
append
((
u
,
0.0
))
uvs
.
append
((
u
,
1.0
))
uvs
.
append
((
0.999
,
0.0
))
uvs
.
append
((
0.999
,
0.999
))
verts
.
append
((
inner_x
,
inner_y
,
0
))
verts
.
append
((
outer_x
,
outer_y
,
0
))
uvs
.
append
((
0.001
,
0.0
))
uvs
.
append
((
0.001
,
0.999
))
else
:
verts
.
append
((
inner_x
,
inner_y
,
0
))
verts
.
append
((
outer_x
,
outer_y
,
0
))
# create uvs
u
=
angle
*
repeat
/
360
%
1
uvs
.
append
((
u
,
0.0
))
uvs
.
append
((
u
,
0.999
))
# create triangles
first_index
=
i
*
2
...
...
simulators/views/ursina_view.py
浏览文件 @
dd23ef37
...
...
@@ -100,7 +100,7 @@ class Planet(Entity):
texture
=
None
if
hasattr
(
self
.
body_view
.
body
,
"torus_starts"
):
model
=
create_torus
(
0.86
,
1.02
,
64
)
model
=
create_torus
(
0.86
,
1.02
,
64
,
4
)
rotation
=
(
90
,
0
,
0
)
else
:
model
=
create_sphere
(
0.5
,
subdivisions
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录