目次 - API(機能別) - 力覚フィードバック - SDL_HapticDirection

SDL_HapticDirection

効果の方向の構造体

フィールド

Uint8type座標系の種類 (詳細を参照すること)
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
もし対応していればZ軸は効果の高さを表す. 対応していなければ使われない. 直行座標系では(1, 2)は(2, 4)は同じである. 考慮されるのは方向のみで, 望むならば何倍にしてもよい.

typeがSDL_HAPTIC_SPHERICALならば, 方向は2つの角度で指定する. dirの2番目までを使う. dirの値は次の通りである(全ての値は度数の100倍).

(1, 0)から(0, 1)へ回転する角度
(0, 0, 1)へ方向の角度 (少なくとも3軸のデバイスが必要)

関連項目(構造体)

SDL_HapticPeriodic

関連項目(関数)

SDL_HapticNumAxes

SDL Wikiへのリンク

SDL_HapticDirection - SDL Wiki