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

# SDL_HapticDirection

効果の方向の構造体

## フィールド

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

もし対応していれば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