C++/VC++に直接は関係ないのですが、Win32のプログラミングということでご了承願いま
す。
msdnのページはマウス中ボタンを押したままマウスを右に移動すると画面は右にスクロ
ールします。つまり、視点が右に移動します。
Googleの地図は、マウス左ボタンを押したままマウスを右に移動すると地図が右に移動
します。つまり、描画対象が右に移動します。
私は、絵の拡大表示を作成中ですが、上記2つのUIのどちらを採用すべきか悩んでいま
す。そこで質問です。
・2つのUIでユーザーが混乱することはないのか。
・Googleの地図のUIが広まっているのか。
・私は、3Dの場合は視点移動が普通だと思っているのだが、間違っているか。
以上、雑談ラウンジの方が適切かも知れませんが、あっちは過疎なので、
すみませんが、こちらでよろしくお願いします。
雑談でよければ
GoogleMapのほうが使いやすいです。
何というか狙った所に移動できるのに対して
中ボタン押しながらだと拡大縮小がしずらいし
加速するので行きすぎてしまう。
あの微妙なフリックで流れていくような感じがいいと思います。
とのさん、早速のレスを放置した形になり、申し訳ありません。
GoogleMapのやり方をWindowsのUIで解釈すると、
「マウス左ボタンを押すと地図全体が選択される。
マウス左ボタンを押したままドラッグすると、選択範囲が移動する。
ただし、選択枠等は表示されない。」
ということですかね。
3Dの場合もこっちの方が使いやすいですか。
2次元の画像を表示するアプリケーションでの画面のスクロール操作には
概ね2種類の考え方があります。対象となるオブジェクトは2つあって、
画像と、ウインドウですね。
A.ウインドウは静止しているものとして、対象画像を指で引きずる動きを
再現したもの。
B.対象画像は静止しているものとして、アプリケーションのウインドウを移動する
という概念を再現したもの。
ですね。
A.は移動させるものが画像自体なので、画面内の画像をドラッグする形になります。
あたりまえですが、マウスが移動した方向に画像も引きずられるのが、
違和感のない動作となります。
一方で、B.はウインドウが移動する概念なので、操作は画像に対してではなく、
ウインドウフレーム上のボタンなど(スクロールバーも含む)ですね。
この場合「↓」ボタンを押したら「ウインドウが下に移動する」わけなので、
画像自体は上方向に移動するのが、概念上自然な動きとなります。
基本的にはどちらの操作でも問題はありませんが、画像に対する編集などを
マウスで行いたい場合には、設計上の注意が必要となります。
A.の場合ドラッグ操作が「画面のスクロール」に固定されているため、
他の編集に流用できなくなる(ただし、モード切替で逃れる場合がある)。
一方B.の場合は、ドラッグによる直線の入力などが矛盾無く実装できるわけです。
つまり、アプリケーションの目的によって、スクロール操作の利便性、
他の操作との無矛盾性を勘案した結果決定されているのだと思いますよ。