| SDL_HapticDirectionType | type | 座標系の種類 (詳細を参照すること) |
| Sint32 | dir[3] | 方向 (詳細を参照すること) |
これは力が来る方向であり, 力が向かう方向ではない.
座標系には次のものがある:
ハプティックデバイスの基本方位は, デバイスの位置と相対的である. 北をユーザが向いている方向とすると, 南がユーザのいる方向, 東が右, 西が左である.
基本方位は次の図のようになっている:
.--.
|__| .-------.
|=.| |.-----.|
|--| || ||
| | |'-----'|
|__|‾')_____('
[ コンピュータ ]
北 (0,-1)
^
|
|
(-1,0) 西 <----[ ハプティック ]----> 東 (1,0)
|
|
v
南 (0,1)
[ ユーザ ]
¥|||/
(o o)
---ooO-(_)-Ooo---
typeがSDL_HAPTIC_POLARならば, 方向は北から時計回りの度数の100倍で指定する.
SDL_HAPTIC_POLARはdirの1番目のみ使う.
基本方位は次のようになる.
typeがSDL_HAPTIC_CARTESIANならば, 方向は3軸(X軸, Y軸, Z軸)で指定する.
SDL_HAPTIC_CARTESIANはdirの3番目までを使う.
基本方位は次のようになる.
もし対応していればZ軸はエフェクトの高さを表す. 対応していなければ使われない. 直行座標系では(1, 2)は(2, 4)は同じである. 考慮されるのは方向のみで, 望むならば何倍にしてもよい.
typeがSDL_HAPTIC_SPHERICALならば, 方向は2つの角度で指定する.
dirの2番目までを使う.
dirの値は次の通りである(全ての値は度数の100倍).
力を南からかける場合の全ての表現の例(力を南からかける場合, ユーザは力に対抗してスティックを引くことになる):
SDL_HapticDirection direction;
// 直交座標
direction.type = SDL_HAPTIC_CARTESIAN; // 直交座標を使う
direction.dir[0] = 0; // X軸
direction.dir[1] = 1; // Y軸
// デバイスは2次元なので, 3つ目のパラメータは必要ない
// 極座標
direction.type = SDL_HAPTIC_POLAR; // 極座標を使う
direction.dir[0] = 18000; // 極座標は最初のパラメータのみ使う
// 球面座標
direction.type = SDL_HAPTIC_SPHERICAL; // 球面座標を使う
direction.dir[0] = 9000; // 2次元なのでこれ以上パラメータは必要ない