box2d 计算下一帧的位置/角度
var dt:Number=1/30; var y0:Number=_body.GetPosition().y; var y:Number=y0+_body.GetLinearVelocity().y*dt+_world.GetGravity().y*dt*dt; trace(y0, "y:"+y);
b2Island中的实现:
var l_gravity:b2Vec2=b.m_customGravity?b.m_customGravity:gravity; //==============================added================================ // Integrate velocities. //b.m_linearVelocity += step.dt * (gravity + b.m_invMass * b.m_force); b.m_linearVelocity.x += step.dt * (l_gravity.x + b.m_invMass * b.m_force.x); b.m_linearVelocity.y += step.dt * (l_gravity.y + b.m_invMass * b.m_force.y); b.m_angularVelocity += step.dt * b.m_invI * b.m_torque;// Apply damping. // ODE: dv/dt + c * v = 0 // Solution: v(t) = v0 * exp(-c * t) // Time step: v(t + dt) = v0 * exp(-c * (t + dt)) = v0 * exp(-c * t) * exp(-c * dt) = v * exp(-c * dt) // v2 = exp(-c * dt) * v1 // Taylor expansion: // v2 = (1.0f - c * dt) * v1 b.m_linearVelocity.Multiply( b2Math.Clamp(1.0 - step.dt * b.m_linearDamping, 0.0, 1.0) ); b.m_angularVelocity *= b2Math.Clamp(1.0 - step.dt * b.m_angularDamping, 0.0, 1.0);
角度:
var dt:Number=1/30; var ang:Number=_body.GetAngle();var angV:Number=_body.GetAngularVelocity(); angV += dt * _body.m_invI * _body.m_torque; angV*=dt angV *= b2Math.Clamp(1.0 - dt * _body.m_angularDamping, 0.0, 1.0);var nextAng:Number=ang+angV; /*trace("ang:",ang); trace("angV:",angV); trace("nextAng:",nextAng+"\n");*/
LinearVelocity与像素的关系:
不考虑摩擦,刚体质量为1,无重力的情况下linearVelocity*dt=distancePixel(像素距离)/ptm_ratio(像素到b2World单位)
转载于:https://www.cnblogs.com/kingBook/p/6149903.html
box2d 计算下一帧的位置/角度相关推荐
- Transformers预测未来:关注下一帧和时间序列预测
Transformers预测未来:关注下一帧和时间序列预测 关注人工智能学术前沿 回复 :ts35 5秒免费获取论文pdf文档,及项目源码 摘要 直到最近,递归神经网络还是捕获时序相关性的最佳方法之一 ...
- 10没有基于策略的qos_基于强化学习的用户移动场景下空中基站3D位置高效部署...
Efficient 3D Aerial Base Station Placement Considering Users Mobility by Reinforcement Learning 摘要: ...
- 硬盘在计算机内部,计算机硬盘内部结构如图所示,读写磁头在计算机的指令下移动到某个位置,硬盘盘面在电机的带动下......
计算机硬盘内部结构如图所示,读写磁头在计算机的指令下移动到某个位置,硬盘盘面在电机的带动下高速旋转,通过读写磁头读写下方磁盘上的数据.磁盘上分为若干个同心环状的磁道,每个磁道按圆心角等分为18个扇区. ...
- iis7下站点日志默认位置
iis7下站点日志默认位置 原文:iis7下站点日志默认位置 iis7下站点日志默认位置 在iis6时,通过iis管理器的日志配置可以找到站点日志存储的位置. 但是在iis7下,iis管理器下的日志配 ...
- Intel Realsense D435 测试摄像头在不同曝光值下的帧生成时间(防止曝光时间过长导致fps下降)auto_exposure_priority(没成功)
文章目录 不用测了 下面测试auto_exposure_priority参数在自动曝光下的作用 下面测试在自动曝光模式下如何实时获取曝光值 测试摄像头在不同曝光值下的帧生成时间 不用测了 参考文章:I ...
- printf输出颜色和ANSI控制码(高亮,下划线,闪烁,光标位置,清屏等)
printf输出颜色和ANSI控制码(高亮,下划线,闪烁,光标位置,清屏等) 帝都码农 2010-05-28 23:52:00 4560 收藏 2 文章标签: function file printf ...
- Java黑皮书课后题第5章:**5.35(加法)编写程序,计算下面的和:1/(1+根2) + 1/(根2+根3) + 1/(根3+根4)+……1/(根624+根625)
@[TOC](5.35(加法)编写程序,计算下面的和:1/(1+根2) + 1/(根2+根3) + 1/(根3+根4)+--1/(根624+根625)) 题目 题目概述 5.35(加法)编写程序,计算 ...
- html 下拉到一定位置,浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定。这种效果怎么实现呢...
1.浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定.页面向上滚动到一定位置继续滚动时,侧边导航保持在原来位置.这种效果怎么实现呢 2.. ...
- 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(4)--(计算透视中心的三维位置)
(一)计算透视中心的三维位置 给出了透视四面体的三个控制点和三条腿的长度,透视中心的三维位置可以确定如下: (1)构造一个平面P1,它相对于平面P-ABL是正交的.这个平面的构造不需要知道透视中心L的 ...
最新文章
- Project interpreter not specified(eclipse+pydev) (转)
- Python开发【Part 4】:数据类型操作
- [数字图像处理]图像去噪初步(1)--均值滤波器
- verilog中wire和reg的区别,什么时候用wire?什么时候用reg?
- exo文件_您在eXo平台上的第一个Juzu Portlet
- Go_笔试题记录-不熟悉的
- http 与https 区别浅析
- CCF NOI100002 取数游戏
- Attention机制的小理解
- GIS设备局部放电在线监测的研究设计报告
- 熟练运用计算机的重要性,计算机*实习目的和意义
- 史上最详细的5-Why解说|优思学院
- 利用python实现判断两条直线是否平行,若相交,输出交点。
- CSS基础班笔记(三)
- 硬件开发总结笔记一:电阻
- 漫威java_10年漫威,到底有多少角色。
- swagger在VS2019 .net core2.2中的使用,及报错undefined /swagger/v1/swagger.json的解决办法
- 模型微调(finetune)
- 主板电池(华硕主板,电池是KTS的)问题导致电脑无法启动
- php错误1064,求助,phpmyadmin导入sql文件提示1064错误