-1

誰でも方法を教えてもらえますか?

これまでにこれを行ったことがないので、使用するライブラリと、入力ではなく命令としてキーが押されたコマンドを呼び出す方法がわからない..

Visio C++ で OpenGL プログラムを書いています。

4

2 に答える 2

3

OpenGL にズームインすることと、キーボード入力を取得することは、2 つの異なることです。GUI (MFC、wxWidgets、Qt、.Net) を使用して、キーボード イベントを入力としてキャプチャできます。次に、OpenGL 関数 (glTranslate) を呼び出してズームを変更し、シーン内のすべてを再描画できます。

于 2009-03-28T10:24:05.543 に答える
1

Win32では、次のようにしてキーの状態を取得できます。

#define KEY_DOWN(vKey)    (GetAsyncKeyState(vKey) & 0x8000) ? true : false
#define KEY_UP(vKey)      (GetAsyncKeyState(vKey) & 0x8000) ? false: true

vKeyは、キーのASCII値を表すintです。

「ズーム」キーが押されていることがわかったら、翻訳を行うことができます

glPushMatrix();
    glTranslate3f(5.0,0.0,0.0); // moves the camera +5 down the x-axis
    ...
glPopMatrix();

もちろん、これはビューの方向に依存するため、現実的には、より複雑なコードを使用してズームを実行します。また、メッセージループ内に配置され、マウスの位置やマウスボタンなど、アプリが使用するすべてのキーの状態を保持する、より複雑なキー状態関数があります。

于 2009-03-28T10:41:35.377 に答える