查找点和轴之间的旋转角度

时间:2017-01-24 20:36:58

标签: python math rotation

我有一个file1,它包含一个类似于矩形的3D空间中的一组点。我也有file2,它是同一组3D坐标,但围绕X,Y和Z轴的每一个旋转一定量。

如何找到每个轴的旋转量?我甚至在针对此问题提出攻击计划时遇到了问题,否则我会展示一些示例代码。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

这个问题可以有一个基础"如果我在变换之前和之后有坐标,我如何计算affine transformation是什么?"

maths.stackexchange中有一个很好的解释,它为您提供了创建转换矩阵所需的精确数学。

那么问题是如何在代码中实现这一点?你正在使用python,所以numpy将成为你的朋友,特别是你需要numpy inverse matrix method,它将找到所需的逆矩阵。

从这里,您可以使用this SO question中描述的方法和代码来获得特定角度的最终结果。这基本上说,现在我们知道仿射变换,让我们将其应用于基本单位向量,并查看旋转是什么。注意(编辑):numpy implementation of the angle between two vectors can be found here

答案 1 :(得分:1)

我没有足够的声誉发表评论,我觉得这不是你问题的完整答案,但我想至少帮助你朝着正确的方向前进。这绝对是与矩阵数学有关的东西,我不是专家,但已完成了几个项目。阅读以下内容可能会为您打开一些方向。 Numpy是一个你应该研究的包,它将允许你进行你需要的矩阵数学。

关于奇异值分解是什么的维基: https://en.wikipedia.org/wiki/Singular_value_decomposition

这是一个名为Procrustes Analysis的步骤,它分析了各组点之间的关系。 Procrustes Analysis with NumPy?

无论如何,研究矩阵数学至少是一个起点。我知道这不是一个完整的答案,但希望这会有所帮助。