惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - HAL9000

旧文重发:漫谈字符集和编码 用html5 canvas和JS写个数独游戏 如何破解.net软件 夜晚才能工作的程序员 公司让各部门写春联,这是我们部门写的对子 盖茨和乔布斯 利用简单的力学法则来模拟天体运行 一个仿windows泡泡屏保的实现 informix cli 汉字乱码的解决办法 msdn版windows 8无法激活的解决办法 谁是DAC2.8和jet4.0的接班人? 一个长事务引起的血案——Informix 长事务回滚失败引起的阻塞故障处理 一些常见的星际旅行的科技名词与其"理论根据": 笔记:连接SCO上的FTP时为何那么慢 关于中文编程的段子的一个实现 VC非托管代码调用webservice,并支持代理服务器设置 天哪,我遇上了一个windows api BUG! 并贡献一个完全支持代理服务器的http文件下载VC代码 找到锁域账号的元凶 求高手指点:VC中wininet的代理服务器问题,耗了两天了,没有一点办法
利用简单的力学法则来模拟天体运行(2)
HAL9000 · 2013-10-16 · via 博客园 - HAL9000

Hi,我对于之前的天体运行程序 (原贴http://www.cnblogs.com/haoxiaobo/p/3368320.html)又做了一次改进,如下:

* 增加运动计算的精确度!

运动计算加入了上次说的线性取中值(其实就是除于2啦),果然又精确了一点。

* 加入相对论修正!

在测试中发现有时星体被加速到超光速!发现自己忘记相对论效应啦!这次加入相对论修正。

* 增加星体合并!

当两个星距离小于半径之和时,大星吃掉小星,质量、半径、颜色、动量发生合并。

* 星体支持贴图!

可以构造方法里指定正方形的星星图,此图会被做为星星的显示材质。如果不指定,就用指定的颜色画一个。

下面的图就是部分效果:

* 用真实的比例显示星体大小!

按真实的星体大小来显示。这个修改之后,虽然更科学了,但也发现可视性效果差了很多,比如放大到太阳占到整个屏幕大小了,地球还只是一个点点……,要想看到远行星,更是需要拖呀拖呀拖呀拖呀……滚呀滚呀滚呀……

宇宙中的尺度真是太大太大太大了,比例真是太大太大太大了……,没办法,于是我又发明了几个功能:小于4个像素的,就画4个像素质。以及,下面的这些个功能:

* 用Shift+滚轮可以单独缩放星体大小!

这样,就可以在空间比例不变的情况下,缩放星星的大小,可以把星星放大到可以在屏幕上看到。

下图就是把所有星体放大5000倍的样子。

* 空格键可以缩放当前跟随的星体到合适的大小来观看!

在跟随某星观察时,可以按下空格键,立即把空间比例缩放到一个合适显示这个星星的大小,并定在屏幕正中。

谁能找出为什么有些星星会在一些大比例显示时会轻微地晃动?

* 鼠标点击选择相机跟随!

原来用C键切换相机跟随星体。星星多了就不方便了。现在用鼠标在屏幕上直接点选星星进行跟随。

同时,也把标签(L)、轨迹(O)、速度(V)等设为默认不显示。当跟随时,或是鼠标在星星上晃时才显示。提高了重绘效率了。

--------------------------------------------------------------------------------

以下是还可以加入的功能。不过近期不会再做了。

* 引力潮

现在的程序里是把星体做为质点来计算的,星体的大小只用于绘图方面的处理。但实际情况下,星体之间,面对面的那边由于比互相背向的一边离得远了一个直径的距离,受到的引力是不一样的,引力差于是就形成了潮汐力,在星体之间离得很远很远时,潮汐力很微小,但在星体离得很近时,这个力就很大,大到超过星星自体的引力时,就会让星星崩解。

我一开始想,如果能加入引力潮下的星体崩解就好了,但是仔细一想,涉及的计算量比较大,在pc上的玩具级模拟程序上,还是算了吧。

* 史瓦西半径

现在程序里的星体合并是出现在两星接触时,但在实际中,每个星星据引力大小都有一个半径范围,其他星体一但进入这个半径,就不可能再逃出,最终会坠入对方。

一般密度的星体,史瓦西半径可能会小于真实星体的半径,但密码很大的星体,史瓦西半径就可能会很大,比如黑洞。

所以,现在的程序对于普通天体的合并处理是正确的,但如果加入一个黑洞,不知道会出现什么事情,也许会自然地遵守这个法则?另一方面,如果加入黑洞的话,就应该把史瓦西半径做为黑洞的半径来处理,颜色就选黑色吧!

* 3d空间与视图

其实已经加入Z维的计算了,只是还没有采用3d视图来处理显示的问题,那个……OpenGL或是Dx3d什么的我还没心思下苦功夫去学习,所以,先就这样吧。

另外,昨天网友推荐的那个3d太阳系程序,我下载了看了,是固定轨道的简易演示,并不对真实物理效应进行模拟,3d酷一点点,但里面没物理学。

* 行星环

现在所有的行星都是用圆处理的。于是我遇上了土星这个奇葩……那个环没法贴图。

我想可以在现在的行星类中派生出一个有环行星的类,来额外画环。

源码已经更新:https://files.cnblogs.com/haoxiaobo/StarsScreenSaver.rar