fsd

三体运动的程序模拟

前几天看了《三体》,很不错的科幻小说。说到三体,我想到我大学的一个舍友叫王晶,和香港那个导演同名同姓同性别.记得有一次几个同学在一块聊天,有个女生问他:父母为什么给他取名叫晶.他说叫晶是父母希望能有三个太阳守护着他。那时我还很单纯,不会用五行缺什么的话来讽刺他,只是说,如果给他起名叫王晶晶的话,那就有6个太阳守护他了.现在对三体有了一些了解,才意识到被三个太阳罩着,那不叫守护,应该是被蹂躏.三体内的行星,感觉是被三个恒星玩弄于股掌之间,如同球一样踢来踢去.

空间中三个星体,受万有引力作用下的运动被称为三体运动,这是最简单且引人注目的混沌。混沌确定系统是庞加莱在研究三体问题时第一次发现的。仅仅三颗星体的运动,就能变得复杂而眩目。这种复杂曾令数学家们在百年间困惑不已。如果只有两个天体,那么一切是多么简单,18世纪的伯努利就已解出了运动的所有可能轨迹,用合适的坐标,就能用简单的曲线描述。但仅仅是多了一个天体,就要等到19世纪的庞加莱,才给出了差强人意的答案:没有漂亮的解(正式术语是三体系统是不可积的)。这并非因为人类的智慧所限,而是从本质上来说,三个天体之间的运动轨迹不可能用简单的式子表达。自然并不像原来期盼的那么简单,它的复杂性令人绝望。但正是这种复杂性孕育了无数可能。并非所有三体系统都不可理解,通过合适的构造,我们可以得到一些会沿着既定曲线运转的系统。通过合适地安排速度和位置,我们也可以使其中一颗星体按照任意给定的顺序探访其余两颗星体。但这些系统是如此脆弱,一点点扰动就会打破微妙的平衡,后果可能是其中一颗星体被抛射出去,从此分道扬镳。混沌,似乎代表了无尽的不确定性,以及所带来的恐惧,就像我们的祖先曾感受过的那样。

软件运行后,会有三个大点的球代表恒星,三个球互相影响着旋转.可以为三体世界添加一个行星,和一个彗星.可以看到行星的恒纪元,乱纪元.

代码使用万有引力和势能动能守恒定律为基础,详细见我上一篇文章:行星运动轨迹的程序实现.当然程序写得很简化,其精度是没法保证的.如果真要做精确的话,微积分是必需的.还有就是在恒纪元时,行星容易进入恒星的内部,所以我做了点篡改,保证行星在恒星外部旋转.这一修改会使用行星的轨迹线不够平滑.

程序启动后,会出现三个随机大小的球体在运动.

鼠标右键用于控制视角
键盘U用于开关UI用户界面.
通过UI用户界面可以设置三个球体的质量,设置万有引力系数,设置天体运行速度,设置球体的显示大小.

键盘1,2,3用于开关三个球体运动轨迹的显示
键盘9,用于开关行星,启动后,会有一个小球体被三体所吸引
键盘0,用于开关慧星,启动后,会有发射一个球体.
键盘4,5分别用于开关行星和彗星运动轨迹的显示

键盘G,用于开关三维网格的显示
键盘C,用于开关坐标轴的显示
键盘P,用于暂停
键盘R,用于重置,这时会随机为三个球体设置质量与初速度.

软件下载地址:http://files.cnblogs.com/WhyEngine/Chaos.7z

时间: 2024-10-05 06:02:20

fsd的相关文章

互联网行业的那些缩写PM,RD,FE,UE,QA,OP,BRD,MRD,PRD,FSD

PM--product manager 这个是产品经理的意思.我一直以为是项目经理的缩写.太坑爹了,本人还写过一个屌丝文章,看来要贻笑大方了. RD--research and develop RD是研究与开发(研发).诸如PHP程序猿,Java程序猿,无论是爱疯的还是安卓的都是属于这一类别. FE -- front end development FE是前端研发.有点意思! UE--  user experience UE是用户体验 QA--quality assurance QA是测试 OP

互联网产品设计常用文档类型-BRD、MRD、PRD、FSD (

BRD Business Requirements Document,商业需求文档.这是产品声明周期中最早的问的文档,再早就应该是脑中的构思了,其内容涉及市场分析,销售策略,盈利预测等,通常是和老大们过的ppt,所以也就比较短小精炼,没有产品细节. 商业需求文档重点放在定义项目的商业需求.BRD要能说出客户碰到的一个或多个商业问题,并且通过公司的产品能够解决这些问题.接着建议一个方案 —— 通常是新产品或者现有产品的改进来解决这些问题.BRD也可能包括一个高级的商业案例,例如收益预测,市场竞争分

文件系统fsd hook (一)原理

文件系统fsd hook (一)原理 要知道FSDHook原理,首先我们必须了解什么是FSD,也就是FileSystem.我们电脑上的文件系统ntfs.sys,他有个设备\FileSystem\Ntfs,这个设备是用IoCreateDevice创建,跟我们写驱动的时候一样,那么我们可以通过这个设备,来对ntfs做一些操作,跟ntfs驱动进行一些通信.我们来看IDA分析: //这个就是我们以前的代码,创建一个通信设备 RtlInitUnicodeString(&DestinationString,

全功能开发团队(FSD)

原文地址:https://www.cnblogs.com/gispathfinder/p/8746684.html

应急响应方案

行文目录如下: 1. 事件分类 常见的安全事件: Web入侵:挂马.篡改.Webshell 系统入侵:系统异常.RDP爆破.SSH爆破.主机漏洞 病毒木马:远控.后门.勒索软件 信息泄漏:刷裤.数据库登录(弱口令) 网络流量:频繁发包.批量请求.DDOS攻击 2. 排查思路 一个常规的入侵事件后的系统排查思路: 1. 文件分析 a) 文件日期.新增文件.可疑/异常文件.最近使用文件.浏览器下载文件 b) Webshell 排查与分析 c) 核心应用关联目录文件分析 2. 进程分析 a) 当前活动

关联映射、关联查询

1 什么叫关联映射 通过数据库对象之间的关联关系(一对一.一对多.多对多),反映到实体对象上之间的引用. 举例 用户实体类(User):user_id user_name user_token 笔记本实体类(Book):book_id user_id book_name 一个笔记本对应一个用户(一对一).一个用户对应多个笔记本(一对多) 案例:根据用户ID去查询用户信息以及该用户所有的笔记信息时就需要用到关联查询,所以就需要用到关联映射 关联查询实体类:user_id user_name use

[笔记][Java7并发编程实战手册]2.5使用Lock实现同步二

[笔记][Java7并发编程实战手册]系列目录 概要 接上一篇文章,练习修改锁的公平性,和在所中使用条件. 修改锁的公平性ReentrantLock /** *构造一个锁对象,默认为非公平锁 */ public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync(); } 根据ReentrantLock的构造可以看出来,默认会构造非公平锁: 公平锁与非公平锁有什么区别 公平锁 :有多个线程并发访

快乐死我了,怎么样成为一个全栈程序员(Full Stack Developer) good

受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天赋,所以只做好软件全栈的话我想还是可能的禅师:你玩过三国志这个游戏吗码农:我还开发过禅师:你喜欢什么样的武将,诸葛亮怎么样?码农:不错,虽然他武力只有20,不过智力有100,不过游戏出战不是单打独斗,我可以给他搭配武力100,智力20的吕布,在战场上所向披靡禅师:对于一个武力65,智力65的武将,你

jQuery工作原理解析以及源代码示例

jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的. 从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库. jQuery改变javascript编码方式! 那么它是如何实现它的声明的呢?这里,用以下的一段简短的使用流程: 1)查找(创建)jQuery对象:$(”selector”); 2)调用jQuery对象的方法完成我们需要完成的工作:$(”selector”).doOurWork(); ok,jQuery就是以这种可