0

我对操纵杆轴的描述有点困惑,我希望有人有一个链接或文档可以帮助消除我的困惑。

我不是 Windows 人,所以尝试移植一些传统的 Windows 游戏端口代码让我有点困惑。

我们都知道常见的前三个轴:
X
Y
Z

我的理解是,在游戏端口风格的界面中,其他三个轴是:
R
U
V

但是,查看我的 IOHIDUsageTables (OS X),我看到:

kHIDUsage_GD_X  = 0x30, /* Dynamic Value */
kHIDUsage_GD_Y  = 0x31, /* Dynamic Value */
kHIDUsage_GD_Z  = 0x32, /* Dynamic Value */
kHIDUsage_GD_Rx = 0x33, /* Dynamic Value */
kHIDUsage_GD_Ry = 0x34, /* Dynamic Value */
kHIDUsage_GD_Rz = 0x35, /* Dynamic Value */

kHIDUsage_GD_Vx = 0x40, /* Dynamic Value */
kHIDUsage_GD_Vy = 0x41, /* Dynamic Value */
kHIDUsage_GD_Vz = 0x42, /* Dynamic Value */
kHIDUsage_GD_Vbrx   = 0x43, /* Dynamic Value */
kHIDUsage_GD_Vbry   = 0x44, /* Dynamic Value */
kHIDUsage_GD_Vbrz   = 0x45, /* Dynamic Value */
kHIDUsage_GD_Vno    = 0x46, /* Dynamic Value */

由于三个 R 轴(尽管这似乎并不罕见)和缺少 U 轴,这让我有点困惑。

两个问题:

1)谁能确认传统的U轴是什么轴?我看到一份文件将其描述为“方向舵踏板的轴”,这让我相信它会是 Ry。
2) 谁能更详细地描述 V 和 Vbr 轴的典型用法?我理解描述分别是“矢量”和“相对矢量”,但我很难想象这在物理设备方面意味着什么。

欢迎所有启蒙和文档指针。

4

1 回答 1

0

这里有 2 种不同的约定,命名方式非常相似:

  • 每个 x、y、z 轴的位置、(R) 旋转和/或 (V) 速度
  • (R)、(U)、(V) 轴

R、U、V 轴可能会直接映射到 3 个 HID 插槽,无论它们是哪个。或者,驱动程序可能会执行其他操作,具体取决于具体的硬件。

就个人而言,我不会花太多时间担心每个轴的“含义”或它们是否可以直接映射。每个操纵杆都有不同的物理控制器,驱动程序将以任意方式映射这些控制器。因此,除了 X 和 Y 之外,很难预测每个函数将使用哪些轴。即使您可以猜到最初的意图,用户也可能希望覆盖默认值。因此,最好通过可以在每个设备和每个用户的基础上配置的设置文件来实现您的轴映射。

于 2010-03-29T10:33:10.397 回答