我已经在网上玩了一段时间了,我似乎无法让它们工作,所以我把这个问题抛到了一边;

我试图从一个点绘制一条速度矢量线。画这条线并不难:只要插入一条有长度的线

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,方向向量的旋转矩阵相关推荐

  1. 空间坐标乘旋转矩阵_坐标变换(4)—旋转矩阵

    1. 群 群(Group)是一种集合加上一种运算的代数结构.我们把集合记作 ,运算记作 , 那么群可以记作 .群要求这个运算满足以下几个条件:封闭性: . 结合律: . 幺元: 逆: 2. speci ...

  2. 方向向量转欧拉角_【姿态表示】旋转向量、旋转矩阵、欧拉角、四元数

    1. 旋转矩阵与旋转向量旋转矩阵(Rotation Matrix)用 9 个量描述旋转的3个自由度,有冗余: 9 个量是有约束的:必须是正交矩阵,且行列式为 1 旋转向量(Rotation Vecto ...

  3. 3D 中的方位与角位移(旋转矩阵、欧拉角、四元数)

    文章目录 一.3D 中的方位与角位移 1. 欧拉角 (Euler angles) 2. 四元数的相关知识 2.1 复数 2.2 欧拉旋转定理 2.3 三维空间旋转的拆分 3. 四元数 (Quatern ...

  4. 旋转矩阵、欧拉角、轴角

    1. 适用于RxRyRz顺序的旋转矩阵与欧拉角变换关系 1.1. 基本旋转矩阵 1.2. 欧拉角->旋转矩阵 1.3. 旋转矩阵->欧拉角 Eigen自带的转换函数会出现欧拉角跳变的现象, ...

  5. 旋转矩阵与欧拉角之间的转换

    简 介: 对于欧拉角与旋转矩阵之间的转换公式和程序实现进行了测试.也显示了这其中的转换关系的复杂性,来自于欧拉角的方向.范围.转换顺序.这在实际应用中需要特别的关注. 关键词: 欧拉角,旋转矩阵 #m ...

  6. 已知旋转矩阵求角度_如何推导旋转矩阵

    极坐标系和直角坐标系是等价的,在极坐标系下,一个点可以表示为(r,θ),在直角坐标系下,表示为(x,y).选取哪种坐标系是看哪种坐标系比较方便,在直角坐标系下处理直线.平移等非常方便:在极坐标系下,旋 ...

  7. 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)

    矩阵的使用可参考系列博客:点击此处 原文链接:基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换. 也可以参考另一篇博客:eigen 中四元数.欧拉角.旋转矩阵.旋转向量. ...

  8. 三维重建学习(1):基础知识:旋转矩阵与旋转向量

    前言 由于摄像机标定中会使用到旋转矩阵以及旋转向量的知识,所以就整理了一下有关与这一部分基础知识的笔记,并进行详细的数学推导. 旋转矩阵 假设坐标系分别绕着xxx轴旋转ϕ\phiϕ角,绕yyy轴旋转θ ...

  9. 第3讲--3.1旋转矩阵

    三维空间由3个轴组成,所以一个空间点的位置可以由3个坐标指定.但考虑刚体时,它不仅有位置,还有自身的姿态.借助数学语言,我们可以更好地来描述它. 3.1.1 点和向量,坐标系 点和向量 向量:线性空间 ...

最新文章

  1. 华为再招 201 万年薪天才少年,任正非:养得起!
  2. RecyclerView局部刷新机制——payload
  3. 数据驱动开发_开发数据驱动的股票市场投资方法
  4. 前端学习(2751):uni-app目录设置
  5. python去掉人像白边_python 使用plt画图,去除图片四周的白边方法
  6. Idea日常使用记录
  7. 最快的Java序列化框架Protostuff简介
  8. 服务器启动服务很慢_哦,地方很好,为什么教育对于启动自动驾驶服务至关重要...
  9. 微积分——傅里叶级数
  10. view的superview的变换
  11. ai形状生成工具机器人_一名大学生使用一种语言生成AI工具来创建病毒博客文章...
  12. [汇编]怎样让猫吃辣椒
  13. java文件 默认打开方式_修改文件的默认打开方式(亲测有效)
  14. 用户体验思考与flex三坑:元素不均分、溢出不省略和垂直不滚动
  15. excel操作系列之中文姓名转英文姓名
  16. Mybatis的collection和association
  17. 【数论定理】卢卡斯定理
  18. IDG刘雨坤:关于SaaS业务七点经验
  19. Stochastic Answer Networks for Machine Reading Comprehension读书笔记
  20. 高薪就业面试题系列 人事篇三

热门文章

  1. 数据分析初学者必备!5分钟搭建波士顿矩阵模型,一学就会
  2. oracle 查询 历史数据,利用闪回查看Oracle表历史时刻数据
  3. Processing入门教程
  4. 转: SteveY对Amazon和Google平台的长篇大论
  5. uTorrent局域网做种
  6. 用小乌龟拉取代码_Git小乌龟的安装及使用
  7. 酒店传媒系统的核心是什么?视达盈为你解答!
  8. 2020-02-25-近红外脑功能成像基础
  9. window.onunload和window.onbeforeunload事件
  10. 什么是Web Service:/什么是Web服务