【问题标题】:Calculating the angles of the rotation giving the vertices计算给出顶点的旋转角度
【发布时间】:2019-02-23 14:54:33
【问题描述】:

我有 4 个点(黑色 A、黑色 B、黑色 C 和黑色 D),它们是旋转的红色正方形的顶点。 是否可以确定用于将红色方块旋转到黑色方块的三个角度(x 角、y 角和 z 角)是什么? 在这种情况下,角度是: X = 1rad Y = 0.2rad Z = 0.3rad

编辑:我只有四个黑点,而不是红点。 关于红色方块我唯一知道的是它是一个正方形

【问题讨论】:

  • 红场你知道多少?你知道它的方向吗?
  • 只是正方形
  • 方向呢?你怎么知道它已经和黑色的方向不同了?
  • 这就是我想要找到的。如果每个角度都为零,那么它是同一个正方形
  • 那么这个解决方案和其他解决方案一样可能。由于您对红色方块一无所知,它可能已经等于黑色方块。

标签: rotation geometry augmented-reality


【解决方案1】:

有一种方法可以找到将点集转换为另一个点集所需的仿射矩阵。 有了natrix,你可以找到角度。

2D案例is here的描述,3D案例类似。

 M * A = B

在哪里

    | xa xb xc xd|
 A =| ya yb yc yd|
    | za zb zc zd|
    | 1  1  1  1 |

    | xa' xb' xc' xd'|
 B =| ya' yb' yc' yd'|
    | za' zb' zc' zd'|
    |  1   1   1   1 |

要找到未知的M,我们可以将表达式两边乘以A矩阵的逆

 M * A * Inv(A) = B * Inv(A)
 M = B * Inv(A)

但解决方案对于非平面点四联体来说是独一无二的 - 在您的情况下,点位于同一平面上,因此如果存在解决方案,它实际上是一系列解决方案,您必须选择任意一个。 (也许角度会被明确定义)

【讨论】:

  • 我不知道红色方块的顶点坐标
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
相关资源
最近更新 更多