Microsoft DirectX 8.0 (Visual Basic) |
DIEFFECT 型に含まれるフォース フィードバック条件のパラメータを表す。
Type DICONDITION lDeadBand As Long lNegativeCoefficient As Long lNegativeSaturation As Long lOffset As Long lPositiveCoefficient As Long lPositiveSaturation As Long End Type
デバイスが正と負に分かれた係数をサポートしていない場合、lNegativeCoefficient 値は無視され、lPositiveCoefficient 値が正負両方の係数として使用される。
デバイスがフォースの飽和値をサポートしない場合、このメンバ値は無視される。
デバイスが正と負に分かれた飽和値をサポートしていない場合、lNegativeSaturation 値は無視され、lPositiveSaturation 値が正負両方の飽和値として使用される。
デバイスがフォースの飽和をサポートしない場合、このメンバ値は無視される。
条件のタイプが異なれば、パラメータの意味も異なるが、基本的な考え方は、条件に起因するフォースは、A(q - q0) に等しくなるということである。ここで、A は、スケーリング係数、q はある距離であり、q0 は、その距離に対する中立値である。
上記の単純な式は、デッドバンドにゼロ以外の値が指定された場合は調整しなければならない。距離が lOffset - lDeadBand より小さければ、生成されるフォースは、次の式で示される。
force = lNegativeCoefficient * (q - (lOffset - lDeadBand))
同様に、距離が lOffset + lDeadBand より大きければ、生成されるフォースは、次の式で示される。
force = lPositiveCoefficient * (q - (lOffset + lDeadBand))
スプリング条件は、軸の位置を距離として使用する。
ダンパ条件は、軸の速度を距離として使用する。
慣性条件は、軸の加速度を距離として使用する。