[交叉学科]用计算机看混沌现象
caoyuan9642 2010-11-20物理
学习Java之后玩了一个小游戏叫Gravitee Wars.
突发奇想:
Java强大的图形功能,
用来仿真一个重力场不是很好嘛


于是马上动手开始做。


程序很简单,就是一个Java applet 外加两个类用来处理万有引力。


万有引力的处理也很简单,每10ms更新一次加速度、速度、时间


具体的,
运动物体质量不计,
大质量物体不动。(类似行星绕恒星)
ax=ΣGM/r2*cos(大质量物体相对于运动物体的极角)


ay=ΣGM/r2*sin(大质量物体相对于运动物体的极角)
dvx=ax·dt
dvy=ay.dt


dx=vx*dt
dy=vy*dt
dt=10ms


每秒更新一百次物体运动状态。
这样仿真出来效果不错,G大概取1e-2左右比较好(坐标的单位是像素)


接下来的事情就很简单了:
放上两个恒星,一个物体团团转。
混沌就这么产生了——简化三体问题


但是,混沌终究会产生规律:
Chaos1.GIF

Chaos2.PNG

Chaos3.PNG

Chaos4.PNG



图中左侧恒星是右侧恒星10倍,并保持不变,
各个图的区别仅在于初始位置和速度不同


这就是混沌的奇妙所在!


还挺好玩的~


论坛MS不得直接播放Java Applet...
上传附件吧。。
不知道怎么在Eclipse里面生成.jar...
只有用个.html凑合了。
attachment icon gravity.rar 5.00KB RAR 23次下载
+600  科创币    科创论坛   2010-11-20   赞扬。
来自:物理学 / 物理
 
2010-11-20 15:20:16
caoyuan9642(作者)
1楼
还有图片上方可以看到1/2*v^2
和Ep的数值
那个是动能和势能
下方的Hamiltonian(哈密顿量)是动势能之和,是守恒的
再下面的Go Away 和Stay 是根据动能和势能判断物体是否会逃逸
图中的线段是物体的初速度和起始位置
折叠评论
加载评论中,请稍候...
折叠评论
2010-11-20 15:37:01
2楼
有意思。我以前一直想做一个玩意,楼主是否有兴趣?
就是成千上万个质点,由于彼此之间的万有引力的作用,在一个空间里活动。我想看看是否能最终生成球状星团或旋臂星系。
另外,也可以看看一般来说,系统最终收敛到一个状态,会是什么样。此时的星体密度分布是什么样的。
折叠评论
加载评论中,请稍候...
折叠评论
caoyuan9642(作者)
3楼
额。。Ls这么有兴致。。
实现应该是不难的,就是电脑可能会很卡。
我打算有空的时候编来玩玩。
LS如果真的这么有兴趣,去百度搜索Phun....是一个专门用来仿真2D物理世界的软件。
你就在里面放上成千上万个小球,设上引力,不考虑质量,开始仿真就行了~
我拿来仿真过理想气体模型,弄得电脑很卡
折叠评论
加载评论中,请稍候...
折叠评论
4楼
楼主加一个行星,设定初速度,质量,围绕恒星运动,然后从行星表面发射一颗卫星,初速度,角度,etc。

还可以加多一个维度,做成3D的,允许调整观察角度。最后是图形反锯齿,根据不同变量(时间,位置,速度,etc)彩色化。

最后变成一个精美的演示程序。
折叠评论
加载评论中,请稍候...
折叠评论
5楼
然后最好可以取物体之间的距离,以运动点为时间参照,加入相对论。
+50  科创币    caoyuan9642   2010-11-20   
折叠评论
加载评论中,请稍候...
折叠评论
6楼
观看不能……
折叠评论
加载评论中,请稍候...
折叠评论
caoyuan9642(作者)
7楼
观看不能是没装Java把。。。
novakon说的对。。
图形反锯齿怎么弄?
求指导。。。
相对论太复杂了吧。。。
弄不好自己会搞晕的。。
折叠评论
加载评论中,请稍候...
折叠评论
8楼
AA有专门的算法,还分很多种,比如FSAA、TSAA,可以交给GPU完成,还有Intel的MLAA。如果不是太复杂,即使G98这种入门级的GPU也能实现。真正的“强大的3D能力”恐怕还是得靠CPP吧,用上DirectX和OpenGL
+20  科创币    caoyuan9642   2010-11-21   thanks
折叠评论
加载评论中,请稍候...
折叠评论
9楼
装了也看不了
折叠评论
加载评论中,请稍候...
折叠评论
2010-11-21 12:30:57
10楼
引用第7楼caoyuan9642于2010-11-20 19:44发表的  :
观看不能是没装Java把。。。
novakon说的对。。
图形反锯齿怎么弄?
求指导。。。
相对论太复杂了吧。。。
.......

尝试调用OpenGL。OpenGL的绘图是可以开反锯齿的,利用显卡绘图速度也很快,可以考虑。
折叠评论
加载评论中,请稍候...
折叠评论
caoyuan9642(作者)
11楼
我现在处在的瓶颈就是Java直接绘图的速度
以及3D绘图的映射
就是说,Oxyz空间中的点映射到屏幕上的哪个点看起来比较顺眼
前几天本来编了个绘制波函数图像的程序,
弄得是类似斜二测画法的绘图
但是看起来太萎缩了。。。
竟然一个球看起来是扁的。。。
LS几位的指导应该很有帮助
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

caoyuan9642
学者 笔友
文章
49
回复
810
学术分
4
2009/05/06注册,4 年前活动
暂无简介
%7B%22isDisplay%22%3Atrue%7D

仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传
空空如也~
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
{{forum.displayName}}
{{forum.countThreads}}
篇文章,
{{forum.countPosts}}
条回复
{{forum.description || "暂无简介"}}
ID: {{user.uid}}
学术分隐藏
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png