algorithm - 如何从四个可以平移或旋转的点中找到一个点的坐标?所有这些点形成一个刚体

标签 algorithm math geometry linear-algebra

我有一个刚体,可以绕垂直于屏幕的轴平移和/或旋转。我在刚体上有四个点的坐标。如何获取刚体上未知点的坐标?

enter image description here

我可以用四个已知点组成一个线性方程来得到第五个未知点吗?如何适应等式中的平移和旋转?

最佳答案

关于点 p 旋转 θ 和平移 t' 的任何组合都可以表示为旋转 θ 关于起源,然后是适当的翻译 t。所以问题就变成了根据已知点计算出 θt 的值。然后可以将变换应用于未知点。

我认为,最简单的工作方式是在齐次坐标系中。对于列向量,θ 围绕原点的旋转由矩阵 M(θ) 表示:

 cos(θ)    sin(θ)    0  
-sin(θ)    cos(θ)    0  
   0         0       1

t = (tx, ty, 1)T 的翻译由矩阵 T( t):

1    0    tx
0    1    ty
0    0    1

整体变换是乘积 T(t)M(θ)。这需要解决三个未知数 θtxty。对于四个已知点,有八个方程(每个点两个,对应于 xy 坐标),因此有足够多的信息来求解未知数。只需插入已知点的值即可。

关于algorithm - 如何从四个可以平移或旋转的点中找到一个点的坐标?所有这些点形成一个刚体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9425863/

相关文章:

algorithm - JavaScript:计算数字的 n 次方根

c# - 从通用平面获取轴对齐坐标

javascript - 如何在 d3v4 中的两点之间绘制箭头?

algorithm - 图像移动标定

algorithm - 从现有数组构造一个数组

c++ - 如何选择整数线性规划求解器?

algorithm - 将重叠的三角形合并为多​​边形

java - 某种算法的大O表示法?

actionscript-3 - 在舞台上寻找空闲区域

vector - 将法向量旋转到轴平面上