我有一个file1,它包含3D空间中的一组类似于矩形的点。我还有file2,它是同一组3D坐标,但绕X,Y和Z轴旋转了一些量。
我怎样才能找到围绕每个轴的旋转量?我甚至在想出一个解决这个问题的计划时都遇到了问题,否则我会给出一些示例代码。谢谢你的帮助。
发布于 2017-01-25 04:58:19
这个问题可以有一个基础,“如果我有转换前后的坐标,我如何计算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
发布于 2017-01-25 05:03:03
我没有足够的声誉来发表评论,我也不认为这是对你问题的完整回答,但我想至少帮助你朝着正确的方向前进。这肯定是与矩阵数学有关的东西,我不是专家,但我做过几个项目。阅读下面的内容可能会为你打开一些方向。Numpy是一个你应该研究的包,它将允许你做你需要的矩阵运算。
关于什么是奇异值分解的维基:https://en.wikipedia.org/wiki/Singular_value_decomposition
这是Procrustes分析中的一个步骤,它分析点集之间的关系。Procrustes Analysis with NumPy?
无论如何,研究矩阵数学至少是一个起点。我知道这不是一个完整的答案,但希望这能在某种程度上有所帮助。
https://stackoverflow.com/questions/41838540
复制相似问题