5 カーソル移動制御ソフトウェア(CMC)の開発
5.2.1 独立制御モード
独立制御モードは,操作者によるカーソル移動方向であるベクトルMの方向,つまりθm
の値の変化に応じて適用する制御方向θcと倍率aを変化させ,(3)式で求められる位置に カーソルを移動させるモードである.θm の値の変化とは操作者のポインティングデバイ ス操作によるカーソル移動方向である.適用される設定値(制御方向θc,倍率a)とθm と の関係を表17に示す.このように制御方向θc,倍率aはそれぞれ4つの値{θu,θd,θl,θr} と{au, ad,al,ar}を持つことができる.よって,座標軸は直交を保つ必要はなく任意の方 向を設定することができる.
例えば図26のようにθm が45◦ ≤θm ≤135◦ の範囲でポインティングデバイス操作がさ れている時は,設定値θu とau が適用され,ベクトルCへの操作と見なされたカーソル移 動とすることができる.ポインティングデバイス操作中にθmの方向が変化すれば,すな
わち,Windows APIからの座標値メッセージが出力される度に,その都度適用される設定
値(θc,a)も変化し,カーソル移動方向が決定される.
なお,θu,θd,θl,θr を全て同じ値とする場合,すなわち,図27のように座標軸の直交 を保ったまま回転させたい場合は,制御方向として回転角θrot を設定することができる.
( xc yc
)
=a
( cosθc −sinθc
sinθc cosθc
) ( xm ym
)
(3)
表17 独立制御モードで適用する設定値
θmの範囲 倍率a 制御方向θc
45◦ ≤θm ≤135◦ au θu
−135◦ ≤θm ≤ −45◦ ad θd
135◦ < θm <225◦ al θl
−45◦ < θm <45◦ ar θr
P
θrot
fig502b
図27 独立制御モードの時の 座標軸回転設定
5.2.2 2方向モード
2方向モードは,操作者によるカーソル移動方向であるベクトルMの方向(θm の値)に 応じて適用する制御方向θf と倍率 aを決定され,移動量 aL の垂直方向または水平方 向の十字方向へのカーソル移動に変換するモードである.適用される設定値(制御方向 θf,倍率a)との関係を表 18に示す.このように倍率aは独立制御モード同様,4つの 値{au,ad,al,ar}が設定できるが,制御方向θf は上下左右のいずれかの動きとなるので定 数である.ただし,どの範囲を上下左右への移動にするかのθm の範囲{±θwu,±θwd, ±θwl,
±θwr}と倍率 {au,ad, al, ar}が個別に設定できる.例えば利用者による操作ベクトルMが
−θwu ≤θm ≤θwuの範囲内でされると,ベクトルCと見なされて垂直上方向へカーソルが移 動する(図28).
2方向モードでは,WindowsのAPI関数からの座標値メッセージを受けとる度に,方 向制御すると滑らかな移動ができず,意図しない方向に進んだり,階段状にマウスカーソ ルが移動して安定しないため,座標値メッセージ5回分の平均値を常に算出し,その値を M(xm,ym)として扱った.
表18 2方向モードで適用する設定値
θmの範囲 倍率a 制御方向θf
−θwu≤ θm ≤ θwu au 90◦
−θwd ≤θm ≤θwd ad 270◦
−θwl ≤θm ≤ θwl al 180◦
−θwr ≤ θm≤ θwr ar 0◦
fig503a
+θwu -θwu
-θwr +θwl
+θwd
C
P
+θwr
-θwd -θwl
図28 2方向モード
5 カーソル移動制御ソフトウェア(CMC)の開発
5.2.3 方向変換モード
方向変換モードは,操作者によるカーソル移動方向であるベクトルMの方向(θm の値) に応じて制御方向θf と倍率 aを決定されるが,移動量aLの垂直上下または水平いずれ かにしか移動しないモードである.適用される設定値(制御方向θf,倍率a)との関係を 表19に示す.倍率aは4つの値{au,ad,al,ar}が設定できるが,制御方向θf は上下左右 のいずれかの動きとなるので定数である.どの範囲が上下移動または左右移動になるかの θmの範囲は図19のとおりである.回転角θrot = 0とした時,y軸の両側それぞれ60◦ の 範囲がθm の範囲となる.両側60◦ の範囲設定は固定値としたが,回転角θrot を設定する ことによって,相対する2方向の向きを変化させることができるようにした.
図29のようにθmの範囲内でカーソル移動がされている時,現在の変換方向が Dud で あれば垂直上下移動し,変換方向がDlr であれば,水平左右移動する.変換方向の切り換 えは,ポインティングデバイス操作実行後,設定された待機時間Td だけ現在位置にカー ソルが停止すると,変換方向が現在までの方向からもう一方の変換方向に切り替わる.次 回以降は同様に停止させることにより変換方向が切り替わる.また,変換方向が切り換 わった時には音と,常駐している当該ソフトウェアのタスクバーが点滅し,操作者に知ら せるようにした.このモードにおいても,2方向モード同様,マウスカーソル移動を安定 させるため,Windows APIからの座標値メッセージ5回分の平均値を常に算出しその値 をM(xm,ym)として扱った.
表19 方向変換モードで適用する設定値 変換
方向 θm の範囲 倍率 a
制御方向 θf
θrot+30◦ ≤θm ≤θrot+150◦ au 90◦ Dud θrot−150◦ ≤θm ≤θrot−30◦ ad 270◦ θrot−150◦ ≤θm ≤θrot−30◦ al 180◦ Dlr θrot+30◦ ≤θm ≤θrot+150◦ ar 0◦
-60°
C C
P
θrot
y
60°
60°
-60°
図29 方向変換モード
76