通过新位置和失真计算矩形角度的旋转?

Calculate rotation of rect angle by new position and distortion?

我有一个基于增强现实的游戏项目,但我不想使用这些库和插件中的任何一个,因为在这之后它们不能做我想做的……等等。 .

所以我的问题是可以计算 3D 世界中 2D 矩形的旋转吗? 如果可以,如何计算?如果没有我该怎么办?

我想到的插图图像:

每个轴上的0旋转(x,y,z轴在2维??)

3D世界0旋转

2D 世界中的一些旋转(在 3D 中 --> x70、y10、z30)

二维旋转 70,10,30

3D 旋转 70,10,30

那么如何从2D算出3D的旋转呢?就像 AR 游戏一样。他们是怎么做到的?

作为一个重要的先决条件,您必须知道未旋转矩形上的哪些 边对应于旋转矩形上的哪些边。

  1. 分别计算每个rect(A和B)的法线,并计算从A旋转到B所需的四元数=>Q。 (这可能在 Eigen 或其他游戏数学库中可用)

  2. 计算如下:

    • 未旋转矩形顶边的中点=> C
    • 旋转后的矩形对应点=> D
    • 旋转矩形的中心=> E
  3. 将向量C旋转Q得到一个向量F .四元数旋转是大多数 3D 数学库中可用的另一种常见操作。

  4. 计算四元数从F旋转到D - E => P

  5. 计算final四元数R = P * Q,并根据需要转换为轴角:Wikipedia