math - 两组 3d 点

标签 math 3d geometry coordinates

我有一个关于 3d 空间中两组点的问题。 我在一个笛卡尔坐标系中通过 40 个坐标定义了一个体积, 在另一个具有不同 (0,0,0) 的坐标系中,我的体积也由 40 坐标定义,但体积略有不同。我知道点集的匹配对,并且我想测量每个点对的差异(欧几里得距离)。 现在 1)我如何相互引用两个坐标系(相同比例),2)我如何最好地计算注册两个体积的变换?

感谢您的帮助。

最佳答案

如果您知道匹配对,那么可以使用伪逆(Matlab 或 numpy 中的 pinv())非常简洁地解决这个问题。

  1. 将点放入两个数组中,A & B,尺寸为 3x40。
  2. 在每个底部添加一行 1,因此 它们现在的尺寸为 4x40。
  3. 将 B 转换为 A 的 4x4 矩阵 (包括任何翻译)是 A * 针v(B)。

在(大部分)一般位置有 40 个点,这甚至可以处理任意比例、旋转或透视变换。

关于math - 两组 3d 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373593/

相关文章:

c++ - 延长线到屏幕边缘

android - 不存在这样的 acos 函数

c# - Math.Acos 不工作?

python - 如何在数学上定义嘈杂的轮廓?

c++ - 有效地计算线段

javascript - three.js 是否有等效的背面可见性?

ios - 为什么我的弯曲文本没有自行居中?

three.js - 如何使用 A-Frame.js 声明 "mask" Material

javascript - 分离 ThreeJS 模型和动画数据

three.js - Three.js 中的间歇半透明球体