Verlet integration (Verlet 积分法)
http://blog.csdn.net/u014327084/article/details/41984719
如果你之前有过开发游戏,你写的代码可能看起来有些像这样:
- _vx += _accelerationX;
- _vy += _accelerationY;
- player.x += _vx;
- player.y += _vy;
vx 是玩家对象的水平速度(horizontal velocity),vy是它的垂直速度(vertical velocity)。
玩家的移动是通过它的当前位置加上他的速度。如果你执行一个帧循环,玩家角色将会发生移动。
这些代码的本质是说:“这里有一个对象,它是在一定的速度和一定的方向移动。所以我们知道下一帧它会出现在那里。”
这很有道理。如果你开车每小时100KM,你知道,10分钟就会驶过10KM,简单的东西!
这是一个被称作Euler integration(欧拉积分——以18世纪数学家莱昂纳多·欧拉命名)的定理用来计算物体位置。它是通过一个对象基于它的当前位置和当前速度来预测它的位置。
它不会让处理器压力过大,易于实现,所以被广泛使用。如果速度是常速它是稳定的,但是如果速度由于摩擦力和加速度发生改变,它将会变得非常不稳定。在复杂的有大量移动物体的物理场景中,它也会有一个崩溃的趋势。
欧拉积分的问题
想象一下,你驾驶着一辆时速100公里的汽车。你的朋友,雷昂纳多 欧拉,酝酿了一个通过每10分钟记录一次你当前位置来预测你下一个位置的计划。他需要每次记录推测出你下一次的位置在哪里,但这所有的工作都来源于你此刻的速度和位置。
听起来足够合理(reasonable),但是问题就出在物理力学,就像摩擦力(friction)和风的阻力(resistance),它们作用于你开车的整个过程,并且欧拉同学木有想到,每隔10分钟进行快照的间隔。这也就意味着你的速度(guarantee)并不能保持不变,你停止的最终位置实际上不是欧拉同学理想的地方。如果你决定为了喝杯咖啡或者吃个面包圈而靠边停车(pull over )了又会怎样呢?
雷昂纳多能解决的是如此的少。他的记录越频繁越能提高预测你的位置。例如每时每刻都在记录。但是任然有很大一片灰色地带(
一般来说,大家对是非的认知很明朗,不是对就是错,不是白就是黑。。其实在这两个极端中间有个很大的灰色地带,他暧昧不明,难以界定。可是说是黑白之间的缓冲区和过渡区吧
)
他没有办法去知道一些意外情况的发生,像是咖啡和面包圈的情况。
Verlet integration (Verlet 积分法)相关推荐
- Verlet Integration
Verlet Integration Verlet 积分法是一种用于求解牛顿运动方程的数值方法,被广泛运用于动力学模拟以及视频游戏中.尔莱算法的优点在于:数值稳定性比简单的欧拉方法高很多,并保持了物理 ...
- 网格弹簧质点系统模拟(Spring-Mass System by Verlet Integration)附源码
模拟物体变形最简单的方法就是采用弹簧质点系统(Spring-Mass System),由于模型简单并且实用,它已被广泛应用于服饰.毛发以及弹性固体的动态模拟.对于三角网格而言,弹簧质点系统将网格中的顶 ...
- 粒子运动模拟 - Verlet积分算法简介
http://www.techbrood.com/zh/news/webgl/%E7%B2%92%E5%AD%90%E8%BF%90%E5%8A%A8%E6%A8%A1%E6%8B%9F---verl ...
- verlet rope
https://github.com/MitaPirsLud/UnityFishing https://www.youtube.com/watch?v=w_qdI6daqyo https://www. ...
- Unity 布料仿真笔记2 欧拉积分 Verlet积分分析
前言 An object at rest remains at rest, unless acted upon by an exterior force. An object in motion re ...
- 比较分子动力学模拟中Verlet算法、Speed Verlet算法及辛算法的精度
比较分子动力学模拟中Verlet算法.Speed Verlet算法及辛算法的精度 原理 分子动力学模拟是一种研究凝聚态系统的有力方法,对于经典体系,分子动力学假定所有粒子的运动服从牛顿运动方程,只要给 ...
- 整理Silverlight资源列表(四)——Silverlight案例补充
在过去整理资料中,发现其中有一部分案例偏小 实用 适合于初学者开发.完全可以做参考,其中包含一些难的源码项目案例,今天整理出其中一部分发上来.因为过去资料时间有点长,可能其中有些连接的资源失效或无法访 ...
- [翻译] 物理引擎javascript实现
转自: How Physics Engines Work 高中物理全还给老师了啊啊啊啊啊啊 牛顿第二定律 物体加速度的大小跟物体受到的作用力成正比,跟物体的质量成反比,加速度的方向跟合外力的方向相同. ...
- 图形学笔记(二十)粒子、刚体、流体的模拟—— 欧拉方法、Errors 和 Instability、中点法、自适应步长、隐式欧拉方法、Runge-Kutta方法、刚体与流体模拟(质点法、网格法、MPM)
图形学笔记(十九)粒子.刚体.流体的模拟-- 欧拉方法.Errors 和 Instability.中点法.自适应步长.隐式欧拉方法.Runge-Kutta方法.刚体与流体模拟(质点法.网格法.MPM) ...
最新文章
- oracle字符串提取函数,oracle字符串分割和提取函数定义
- attribute 'groups' of type 'int' is not usable in a script method
- Selenium3自动化测试——19.读取数据文件
- 5.Hadoop的学习(Hadoop的配置(伪分布式的搭建)-1)
- UE4 使用VaRest的最佳实践
- Mysql的命令行操作
- 计算机c语言等级考试PDF,国家计算机等级考试c语言精华.pdf
- paip.快捷方式分组管理最佳实践ObjectDock
- Ajax 重新绑定 webgrid 数据,绑定WebGrid表单AJAX
- 书签collection
- Android 动画 Kotlin 教程
- 定制开发 app 的好处都有哪些?
- 【PyTorch】13 Image Caption:让神经网络看图讲故事
- 通用微PE工具箱下载_通用微PE使用教图文程
- QT软件开发之基础控件--2.4.4 QTextEdit文本编辑器
- Introduction to Track-To-Track Fusion
- 单元测试技巧之PowerMock
- Dwarves (有向图判环)
- 南华大学计算机调剂,2020南华大学考研调剂系统开通通知
- ZZULIOJ 1800: 少水群多刷题
热门文章
- 实体词典 情感词典_基于词典的情感分析——简单实例
- html li去掉黑点_10分钟教你Python爬虫(上) HTML和爬虫基础
- 云存储服务器销售,云存储服务器销售
- linux成功mysql数据直接拷贝_mysql数据库数据从一个linux系统移植到另一个linux系统的方法...
- python文本相似度分析_文本相似度分析(基于jieba和gensim)
- 鸿蒙报名什么时候推送,鸿蒙系统手机版什么时候推送?鸿蒙系统手机版推送时间详解...
- docker 不包含依赖 打包_Docker打包深度学习项目(解决:Opencv依赖库、共享内存)...
- 前端如何查看音频的长度_Android音频可视化
- 二次规划问题matlab,matlab5二次规划问题.doc
- 计算机英语讲课笔记01