四元数或 3 角,碰撞反应..3D
Quaternion or 3 Angles, reaction from collision. 3D
我已经用一艘船编写了一个简单的游戏,并且具有基本的碰撞检测功能。 但我正在努力计算碰撞的有效反应。
船舶旋转由四元数 Q(w,x,y,z) 表示。
它的位置是一个坐标P(x,y,z)。
表面上的碰撞是坐标 C(x,y,z)。
碰撞后沿表面滑动的方向是单位向量 S(x,y,z)。
曲面法线是单位向量 N(x,y,z)。
游戏有六个自由度,没有特定的世界"向上"方向。
如何计算正确的旋转以应用于船舶,使其面向方向 S? *同时尽量减少船舶局部"向上"方向的变化。任何伪代码或指向数学解释的指针将不胜感激。
目前,我正在从滑动方向计算四元数并将其应用于船舶,但显然没有保留"向上"方向。
:S
已解决
它现在正在工作。
通过计算两个向量(船舶"Fwd"方向和滑动矢量 (S))之间的四元数来解决,然后将该四元数乘以当前的船舶旋转 (Q)。
// quaternion from two vectors
quat quat::fromtwovectors(vec3 u, vec3 v) {
vec3 w = cross(u, v);
quat q = quat( dot(u, v), w.x, w.y, w.z);
q.w += q.magnitude();
return normalize(q);
}
相关文章:
- IE7-FIX下的总碰撞
- Highcharts 3d调整zindex错误
- 逐像素碰撞检测弹球
- HighCharts:3D柱形图在选择时更改边框颜色
- 3d上的深度比例错误
- 如何使用Canvas制作3D动画
- 如何在HTML5中查看3D模型
- Highcharts多个Y轴绘图带碰撞
- 带有JQuery和CSS的3D旋转木马-渲染不正确
- 砖块和球之间的碰撞检测(使用数字数组)
- 为Phaser创建碰撞形状
- 类似Javascript 3d的轮播,用于复杂的内容
- 使用 CSS 或 javascript/jQuery,我会使用哪种方法来使我的网站的导航栏看起来更 3d-ish
- 检测是否以全屏模式(3d 翻书)
- 为什么我应该使用带有碰撞检测的四叉树
- 复制 3D 阵列
- 在 AS3 和 HTML5 中创建 3D 条形图
- 如何在 Three.js 中将 3D 网格“展平”为 2D 形状
- Safari 6 and 3d transformations
- 四元数或 3 角,碰撞反应..3D