这里以最常见的滑动和转轴约束进行一下分析, 它们都是把位移或者旋转限制在一个轴上, 计算起来比较简单.
对带有约束的物理对象进行交互, 难点在于如何使物理对象仍然严格按约束关系来运动....在 VR下双手与物体的交互 中提到过, 要想使一个物理对象动起来, 可以有三种方法: 设置位置, 设置速度(施加冲量), 释加力....但是对于带有约束关系的物理对象, 这个是比较难保证的. 因为它们被限制在了一个轴上运动, 而我们的手不是. 因此, 如果要同步手的移动到这个物理对象上, 需要把手的位置按照约束关系进行映射....这样的话, 相当于在交互时, 自行模拟了约束关系, 让设置的位置(或角度)保持在合理的约束范围内.
但是, 这么做有两个问题:
1. 松开手时, 物理对象是静止的....因为设置位置(或角度)的方式, 物体的速度是0, 所以要想在松手时按照惯性继续运动, 需要手动设置一个速度(或者角速度)让它保持交互最后一刹那的运动继续下去.
2.