旋转矩阵 java,方向向量的旋转矩阵
我已经在网上玩了一段时间了,我似乎无法让它们工作,所以我把这个问题抛到了一边;
我试图从一个点绘制一条速度矢量线。画这条线并不难:只要插入一条有长度的线
velocity.length
在图表中。这将使线以Y轴方向的点为中心。我们现在需要在适当的旋转和平移中得到它。
平动矢量不难计算:它是速度矢量的一半。然而,旋转矩阵对我来说是非常难以捉摸的。给定方向向量
我需要什么样的矩阵?
编辑1:
看,如果你不理解这个问题,你可能就不能给我一个答案。
以下是我目前拥有的:
Vector3f translation = new Vector3f();
translation.scale(1f/2f, body.velocity);
Vector3f vec_z = (Vector3f) body.velocity.clone();
vec_z.normalize();
Vector3f vec_y; // reference vector, will correct later
if (vec_z.x == 0 && vec_z.z == 0) {
vec_y = new Vector3f(-vec_z.y, 0f, 0f); // could be optimized
} else {
vec_y = new Vector3f(0f, 1f, 0f);
}
Vector3f vec_x = new Vector3f();
vec_x.cross(vec_y, vec_z);
vec_z.normalize();
vec_y.cross(vec_x, vec_z);
vec_y.normalize();
vec_y.negate();
Matrix3f rotation = new Matrix3f(
vec_z.z, vec_z.x, vec_z.y,
vec_x.z, vec_x.x, vec_x.y,
vec_y.z, vec_y.x, vec_y.y
);
arrowTransform3D.set(rotation, translation, 1f);
基于关闭
this article
. 是的,我试过标准旋转矩阵(vec_x.x,vec_y.x,等等),但没用。我一直在旋转列和行以查看是否有任何效果。
编辑2:
对我评论的粗鲁措辞表示歉意。
所以看起来有两个错误的组合;其中一个是House MD指出的(变量的命名非常糟糕:
vec_z
实际上是
vec_y
,依此类推),另一个问题是,在将矩阵传递给渲染引擎之前,我需要反转矩阵(转置非常接近!),修改后的代码为:
Vector3f vec_y = (Vector3f) body.velocity.clone();
vec_y.normalize();
Vector3f vec_x; // reference vector, will correct later
if (vec_y.x == 0 && vec_y.z == 0) {
vec_x = new Vector3f(-vec_y.y, 0f, 0f); // could be optimized
} else {
vec_x = new Vector3f(0f, 1f, 0f);
}
Vector3f vec_z = new Vector3f();
vec_z.cross(vec_x, vec_y);
vec_z.normalize();
vec_x.cross(vec_z, vec_y);
vec_x.normalize();
vec_x.negate();
Matrix3f rotation = new Matrix3f(
vec_x.x, vec_x.y, vec_x.z,
vec_y.x, vec_y.y, vec_y.z,
vec_z.x, vec_z.y, vec_z.z
);
rotation.invert();
旋转矩阵 java,方向向量的旋转矩阵相关推荐
- 空间坐标乘旋转矩阵_坐标变换(4)—旋转矩阵
1. 群 群(Group)是一种集合加上一种运算的代数结构.我们把集合记作 ,运算记作 , 那么群可以记作 .群要求这个运算满足以下几个条件:封闭性: . 结合律: . 幺元: 逆: 2. speci ...
- 方向向量转欧拉角_【姿态表示】旋转向量、旋转矩阵、欧拉角、四元数
1. 旋转矩阵与旋转向量旋转矩阵(Rotation Matrix)用 9 个量描述旋转的3个自由度,有冗余: 9 个量是有约束的:必须是正交矩阵,且行列式为 1 旋转向量(Rotation Vecto ...
- 3D 中的方位与角位移(旋转矩阵、欧拉角、四元数)
文章目录 一.3D 中的方位与角位移 1. 欧拉角 (Euler angles) 2. 四元数的相关知识 2.1 复数 2.2 欧拉旋转定理 2.3 三维空间旋转的拆分 3. 四元数 (Quatern ...
- 旋转矩阵、欧拉角、轴角
1. 适用于RxRyRz顺序的旋转矩阵与欧拉角变换关系 1.1. 基本旋转矩阵 1.2. 欧拉角->旋转矩阵 1.3. 旋转矩阵->欧拉角 Eigen自带的转换函数会出现欧拉角跳变的现象, ...
- 旋转矩阵与欧拉角之间的转换
简 介: 对于欧拉角与旋转矩阵之间的转换公式和程序实现进行了测试.也显示了这其中的转换关系的复杂性,来自于欧拉角的方向.范围.转换顺序.这在实际应用中需要特别的关注. 关键词: 欧拉角,旋转矩阵 #m ...
- 已知旋转矩阵求角度_如何推导旋转矩阵
极坐标系和直角坐标系是等价的,在极坐标系下,一个点可以表示为(r,θ),在直角坐标系下,表示为(x,y).选取哪种坐标系是看哪种坐标系比较方便,在直角坐标系下处理直线.平移等非常方便:在极坐标系下,旋 ...
- 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)
矩阵的使用可参考系列博客:点击此处 原文链接:基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换. 也可以参考另一篇博客:eigen 中四元数.欧拉角.旋转矩阵.旋转向量. ...
- 三维重建学习(1):基础知识:旋转矩阵与旋转向量
前言 由于摄像机标定中会使用到旋转矩阵以及旋转向量的知识,所以就整理了一下有关与这一部分基础知识的笔记,并进行详细的数学推导. 旋转矩阵 假设坐标系分别绕着xxx轴旋转ϕ\phiϕ角,绕yyy轴旋转θ ...
- 第3讲--3.1旋转矩阵
三维空间由3个轴组成,所以一个空间点的位置可以由3个坐标指定.但考虑刚体时,它不仅有位置,还有自身的姿态.借助数学语言,我们可以更好地来描述它. 3.1.1 点和向量,坐标系 点和向量 向量:线性空间 ...
最新文章
- 华为再招 201 万年薪天才少年,任正非:养得起!
- RecyclerView局部刷新机制——payload
- 数据驱动开发_开发数据驱动的股票市场投资方法
- 前端学习(2751):uni-app目录设置
- python去掉人像白边_python 使用plt画图,去除图片四周的白边方法
- Idea日常使用记录
- 最快的Java序列化框架Protostuff简介
- 服务器启动服务很慢_哦,地方很好,为什么教育对于启动自动驾驶服务至关重要...
- 微积分——傅里叶级数
- view的superview的变换
- ai形状生成工具机器人_一名大学生使用一种语言生成AI工具来创建病毒博客文章...
- [汇编]怎样让猫吃辣椒
- java文件 默认打开方式_修改文件的默认打开方式(亲测有效)
- 用户体验思考与flex三坑:元素不均分、溢出不省略和垂直不滚动
- excel操作系列之中文姓名转英文姓名
- Mybatis的collection和association
- 【数论定理】卢卡斯定理
- IDG刘雨坤:关于SaaS业务七点经验
- Stochastic Answer Networks for Machine Reading Comprehension读书笔记
- 高薪就业面试题系列 人事篇三