通过新位置和失真计算矩形角度的旋转?
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 游戏一样。他们是怎么做到的?
作为一个重要的先决条件,您必须知道未旋转矩形上的哪些 边对应于旋转矩形上的哪些边。
分别计算每个rect(A和B)的法线,并计算从A旋转到B所需的四元数=>Q。 (这可能在 Eigen 或其他游戏数学库中可用)
计算如下:
- 未旋转矩形顶边的中点=> C
- 旋转后的矩形对应点=> D
- 旋转矩形的中心=> E
将向量C旋转Q得到一个向量F .四元数旋转是大多数 3D 数学库中可用的另一种常见操作。
计算四元数从F旋转到D - E => P
计算final四元数R = P * Q,并根据需要转换为轴角:Wikipedia
我有一个基于增强现实的游戏项目,但我不想使用这些库和插件中的任何一个,因为在这之后它们不能做我想做的……等等。 .
所以我的问题是可以计算 3D 世界中 2D 矩形的旋转吗? 如果可以,如何计算?如果没有我该怎么办?
我想到的插图图像:
每个轴上的0旋转(x,y,z轴在2维??)
3D世界0旋转
2D 世界中的一些旋转(在 3D 中 --> x70、y10、z30)
二维旋转 70,10,30
3D 旋转 70,10,30
那么如何从2D算出3D的旋转呢?就像 AR 游戏一样。他们是怎么做到的?
作为一个重要的先决条件,您必须知道未旋转矩形上的哪些 边对应于旋转矩形上的哪些边。
分别计算每个rect(A和B)的法线,并计算从A旋转到B所需的四元数=>Q。 (这可能在 Eigen 或其他游戏数学库中可用)
计算如下:
- 未旋转矩形顶边的中点=> C
- 旋转后的矩形对应点=> D
- 旋转矩形的中心=> E
将向量C旋转Q得到一个向量F .四元数旋转是大多数 3D 数学库中可用的另一种常见操作。
计算四元数从F旋转到D - E => P
计算final四元数R = P * Q,并根据需要转换为轴角:Wikipedia