求助:想做一个引力的动画, A 绕 B 旋转,并被吸引,求公式

2017-05-12 17:00:03 +08:00
 wl879

像黑洞的动画,星星围绕它转,最后被吸入的动画

4158 次点击
所在节点    程序员
23 条回复
SeanChense
2017-05-12 17:19:58 +08:00
多体系统,你想要的是双体系统。
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
jianzhiyao020
2017-05-12 17:20:42 +08:00
百度:
万有引力公式
圆周运动公式
eoxy
2017-05-12 17:28:02 +08:00
F=Gm₁m₂∕r²
ryd994
2017-05-12 17:35:16 +08:00
如果忽略星星之间的相互作用的话,就是独立问题,最简单。不忽略就是 n body,你先试试 verlet

@SeanChense n body 问题难的是解析解。数值方法求近似还是很容易的。不然各种分子动力学都不用做了。
finab
2017-05-12 17:45:38 +08:00
直接被楼上吓尿了
我以为楼主就要个 🌀 这个的计算公式呢,
hard2reg
2017-05-12 17:47:18 +08:00
请 flash
am241
2017-05-12 17:50:32 +08:00
要么推导出轨迹随时间变化的函数并绘制
要么找一个最小时间间隔做数值积分
Kilerd
2017-05-12 18:01:20 +08:00
@SeanChense 三体找不到一个稳定的状态。
因此引发了《三体》
menc
2017-05-12 18:37:56 +08:00
楼上都想什么呢,三体都出来了?强行吹比?看不懂题意?
二体也用不上,人家固定了一个物体,哪来的双体问题?
feng32
2017-05-12 18:45:32 +08:00
多体用计算机模拟特简单,类似数值积分的方法就行了
shijingshijing
2017-05-12 19:03:57 +08:00
很早以前,替我妈做了个地球围绕太阳转的物理课程动画教案,用的 Authorware,供楼主参考。
ProjectAmber
2017-05-12 19:27:24 +08:00
用阿基米德螺线近似下比较简单。
pcwow
2017-05-12 19:31:18 +08:00
《 HTML5+JavaScript 动画基础》第 12 章粒子与万有引力
这里有 Demo:
http://lamberta.github.io/html5-animation/
blankme
2017-05-12 19:31:54 +08:00
动量守恒 + 能量守恒 就能算出 r(t) 和 \theta(t)

不过最后是个微分方程。。。 - -

最实际的方法其实是找个差不多的螺旋线直接拿来用就行了,不是专业用途没人会细究的
acros
2017-05-12 19:35:51 +08:00
最简单做法,直接绕圈不就好了,只是 r 值慢慢变小。
复杂点用速度合成,一个切向力,一个向心力(渐大),做向量叠加。

不是做模拟天体吧,是的话我不知道....
flyingghost
2017-05-12 20:20:13 +08:00
不就是引力公式和速度 /加速度公式吗?不就是速度合成吗?
三体问题是找不出解析解,模拟三个体直接跑跑看还不简单嘛。
而且 @menc #9 也指出了,题意根本没说 B 也绕 A 旋转。更简化了。
这样的题面,画个九大行星绕太阳然后改改参数让他们都掉进去也不难啊。
blankme
2017-05-12 20:34:59 +08:00
@flyingghost 你这样是算不出来的,因为引力是含时的
quadpixels
2017-05-12 23:09:45 +08:00
积分可以用 Runge-Kutta 法,会比直接的加法(又叫欧拉法)要好。
有一个叫 Hattrick 的程序,就是用了 GNU GSL 中的 Runge-Kutta 积分器来解 N 体问题的: https://github.com/wtolson/hattrick
quadpixels
2017-05-12 23:21:43 +08:00
在那个 Hattrick 的这个文件中的 Acceleration 函数就有速度和加速度的公式,其实有了那两个就能让系统动起来。
https://github.com/wtolson/hattrick/blob/master/src/Gravity.cc
这个程序精度很高,我自己试过低精度,如果只是要起来看起来好看就 OK 其实也行不需要这么高级的方法的
dongoo
2017-05-13 01:34:11 +08:00
斐波那契数列?
不知道可不可以要倒过来呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/360919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX