[交叉学科]用计算机看混沌现象
caoyuan96422010/11/20物理 IP:安徽
学习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 4.77KB RAR 54次下载
+600  科创币    科创网    2010/11/20 赞扬。
来自:数理化 / 物理
12
 
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
caoyuan9642 作者
14年2个月前 IP:未同步
266245
还有图片上方可以看到1/2*v^2
和Ep的数值
那个是动能和势能
下方的Hamiltonian(哈密顿量)是动势能之和,是守恒的
再下面的Go Away 和Stay 是根据动能和势能判断物体是否会逃逸
图中的线段是物体的初速度和起始位置
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
量子隧道
14年2个月前 IP:未同步
266248
有意思。我以前一直想做一个玩意,楼主是否有兴趣?
就是成千上万个质点,由于彼此之间的万有引力的作用,在一个空间里活动。我想看看是否能最终生成球状星团或旋臂星系。
另外,也可以看看一般来说,系统最终收敛到一个状态,会是什么样。此时的星体密度分布是什么样的。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
caoyuan9642作者
14年2个月前 IP:未同步
266254
额。。Ls这么有兴致。。
实现应该是不难的,就是电脑可能会很卡。
我打算有空的时候编来玩玩。
LS如果真的这么有兴趣,去百度搜索Phun....是一个专门用来仿真2D物理世界的软件。
你就在里面放上成千上万个小球,设上引力,不考虑质量,开始仿真就行了~
我拿来仿真过理想气体模型,弄得电脑很卡
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年2个月前 IP:未同步
266257
楼主加一个行星,设定初速度,质量,围绕恒星运动,然后从行星表面发射一颗卫星,初速度,角度,etc。

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

最后变成一个精美的演示程序。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年2个月前 IP:未同步
266258
然后最好可以取物体之间的距离,以运动点为时间参照,加入相对论。
+50
科创币
caoyuan9642
2010-11-20
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ltl
14年2个月前 IP:未同步
266267
观看不能……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
caoyuan9642作者
14年2个月前 IP:未同步
266286
观看不能是没装Java把。。。
novakon说的对。。
图形反锯齿怎么弄?
求指导。。。
相对论太复杂了吧。。。
弄不好自己会搞晕的。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn
14年2个月前 IP:未同步
266301
AA有专门的算法,还分很多种,比如FSAA、TSAA,可以交给GPU完成,还有Intel的MLAA。如果不是太复杂,即使G98这种入门级的GPU也能实现。真正的“强大的3D能力”恐怕还是得靠CPP吧,用上DirectX和OpenGL
+20
科创币
caoyuan9642
2010-11-21
thanks
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
123123123
14年2个月前 IP:未同步
266304
装了也看不了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年2个月前 IP:未同步
266334
引用第7楼caoyuan9642于2010-11-20 19:44发表的  :
观看不能是没装Java把。。。
novakon说的对。。
图形反锯齿怎么弄?
求指导。。。
相对论太复杂了吧。。。
.......

尝试调用OpenGL。OpenGL的绘图是可以开反锯齿的,利用显卡绘图速度也很快,可以考虑。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
caoyuan9642作者
14年2个月前 IP:未同步
266348
我现在处在的瓶颈就是Java直接绘图的速度
以及3D绘图的映射
就是说,Oxyz空间中的点映射到屏幕上的哪个点看起来比较顺眼
前几天本来编了个绘制波函数图像的程序,
弄得是类似斜二测画法的绘图
但是看起来太萎缩了。。。
竟然一个球看起来是扁的。。。
LS几位的指导应该很有帮助
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

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

所属专业
上级专业
同级专业
caoyuan9642
学者 笔友
文章
49
回复
810
学术分
4
2009/05/06注册,8年6个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}