像黑洞的动画,星星围绕它转,最后被吸入的动画
1
SeanChense 2017-05-12 17:19:58 +08:00 1
多体系统,你想要的是双体系统。
N 大于等于 3 的多体系统现在科学家都头疼。 https://zh.wikipedia.org/wiki/%E4%BA%8C%E9%AB%94%E5%95%8F%E9%A1%8C https://zh.wikipedia.org/wiki/N%E4%BD%93%E9%97%AE%E9%A2%98 |
2
jianzhiyao020 2017-05-12 17:20:42 +08:00
百度:
万有引力公式 圆周运动公式 |
3
eoxy 2017-05-12 17:28:02 +08:00
F=Gm₁m₂∕r²
|
4
ryd994 2017-05-12 17:35:16 +08:00 via Android 1
如果忽略星星之间的相互作用的话,就是独立问题,最简单。不忽略就是 n body,你先试试 verlet
@SeanChense n body 问题难的是解析解。数值方法求近似还是很容易的。不然各种分子动力学都不用做了。 |
5
finab 2017-05-12 17:45:38 +08:00
直接被楼上吓尿了
我以为楼主就要个 🌀 这个的计算公式呢, |
6
hard2reg 2017-05-12 17:47:18 +08:00 via iPhone
请 flash
|
7
am241 2017-05-12 17:50:32 +08:00 via Android
要么推导出轨迹随时间变化的函数并绘制
要么找一个最小时间间隔做数值积分 |
8
Kilerd 2017-05-12 18:01:20 +08:00 via iPhone
@SeanChense 三体找不到一个稳定的状态。
因此引发了《三体》 |
9
menc 2017-05-12 18:37:56 +08:00 4
楼上都想什么呢,三体都出来了?强行吹比?看不懂题意?
二体也用不上,人家固定了一个物体,哪来的双体问题? |
10
feng32 2017-05-12 18:45:32 +08:00
多体用计算机模拟特简单,类似数值积分的方法就行了
|
11
shijingshijing 2017-05-12 19:03:57 +08:00 2
很早以前,替我妈做了个地球围绕太阳转的物理课程动画教案,用的 Authorware,供楼主参考。
|
12
ProjectAmber 2017-05-12 19:27:24 +08:00 via iPhone 1
用阿基米德螺线近似下比较简单。
|
13
pcwow 2017-05-12 19:31:18 +08:00 1
|
14
blankme 2017-05-12 19:31:54 +08:00 1
动量守恒 + 能量守恒 就能算出 r(t) 和 \theta(t)
不过最后是个微分方程。。。 - - 最实际的方法其实是找个差不多的螺旋线直接拿来用就行了,不是专业用途没人会细究的 |
15
acros 2017-05-12 19:35:51 +08:00 via iPhone 1
最简单做法,直接绕圈不就好了,只是 r 值慢慢变小。
复杂点用速度合成,一个切向力,一个向心力(渐大),做向量叠加。 不是做模拟天体吧,是的话我不知道.... |
16
flyingghost 2017-05-12 20:20:13 +08:00
不就是引力公式和速度 /加速度公式吗?不就是速度合成吗?
三体问题是找不出解析解,模拟三个体直接跑跑看还不简单嘛。 而且 @menc #9 也指出了,题意根本没说 B 也绕 A 旋转。更简化了。 这样的题面,画个九大行星绕太阳然后改改参数让他们都掉进去也不难啊。 |
17
blankme 2017-05-12 20:34:59 +08:00 via Android
@flyingghost 你这样是算不出来的,因为引力是含时的
|
18
quadpixels 2017-05-12 23:09:45 +08:00 via Android
积分可以用 Runge-Kutta 法,会比直接的加法(又叫欧拉法)要好。
有一个叫 Hattrick 的程序,就是用了 GNU GSL 中的 Runge-Kutta 积分器来解 N 体问题的: https://github.com/wtolson/hattrick |
19
quadpixels 2017-05-12 23:21:43 +08:00 via Android
在那个 Hattrick 的这个文件中的 Acceleration 函数就有速度和加速度的公式,其实有了那两个就能让系统动起来。
https://github.com/wtolson/hattrick/blob/master/src/Gravity.cc 这个程序精度很高,我自己试过低精度,如果只是要起来看起来好看就 OK 其实也行不需要这么高级的方法的 |
20
dongoo 2017-05-13 01:34:11 +08:00 via Android
斐波那契数列?
不知道可不可以要倒过来呢? |
21
dangyuluo 2017-05-13 02:42:03 +08:00
实际上你考虑一下,强行另一个大质量物体 A 静止,另一个小质量物体 B 以一定初速度绕 A 运转。不考虑阻力,只要初速度矢量方向不在 AB 连线方向上的话,那轨迹肯定是个封闭的椭圆,二者永远不会相交的。
|
23
codehz 2017-05-13 23:02:29 +08:00 via Android 1
只是做动画而已啊。。。又不用在乎科学性。。。
用极坐标,然后弄个递减函数就可以了(比如 a/x-b)。。。然后角度增加的速度,应该是越来越快的,这里再弄一个递增函数(比如 c^x),完美。。。这样参数化之后,只要调整几个参数,看着好看就可以了 基于物理的方法去做这个基本是费力不讨好,可能物理上都对了,但是不好看。。。。。 |