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