在Android SensorManager中,有几种方法可以获取手机的方向:
float[] rotational = new float[9];
float[] orientation = new float[3];
SensorManager.getRotationMatrix(rotational, whatever, whatever, whatever);
SensorManager.getOrientation(rotational, orientation);
这会给你一个名为“旋转”的旋转矩阵和一个包含3个方向角的数组,称为“方向”。然而,在我的AR程序中我不能使用这些角度 - 我需要代表轴的实际向量。
例如,在维基百科上的这张图片中:
![Euler Angles from Wikipedia](https://istack.dev59.com/EeWKI.webp)
我基本上是被给予α,β和γ角度(虽然不完全准确,因为我没有N - 我得到了每个蓝色轴的角度),我需要找到代表X,Y和Z轴的向量(图中的红色)。有人知道如何进行这种转换吗?维基百科上的说明非常复杂,我试图按照它们的说明操作,但并没有成功。另外,我认为Android提供给您的数据可能与维基百科上的转换说明所期望的顺序或格式略有不同。
作为这些转换的替代方案,有人知道从相机的视角获取X,Y和Z轴的其他方法吗? (意思是,相机正在看哪个向量?相机认为哪个向量是“向上”的?)