如何使用键盘作为命令来放大opengl?

发布于 2024-07-15 20:32:26 字数 108 浏览 4 评论 0原文

谁能告诉我怎么做?

我以前从未这样做过,所以我不确定要使用什么库以及如何调用按下按键作为指令而不是输入的命令。

我正在用 Visio C++ 编写 OpenGL 程序

can anyone tell me how?

i've never done this before so i'm not sure as what library to use and how to call the command that a key pressed as a instruction rather than input..

i'm writing a OpenGL program in Visio C++

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

百善笑为先 2024-07-22 20:32:26

缩放 OpenGL 和获取键盘输入是两件不同的事情。 您可以使用任何 GUI(MFC、wxWidgets、Qt、.Net)来捕获键盘事件作为输入。 然后,您可以调用 OpenGL 函数 (glTranslate) 来更改缩放,然后重新绘制场景中的所有内容。

Zooming in OpenGL and getting keyboar inputs are two different things. You can use whatever GUI (MFC, wxWidgets, Qt, .Net) to capture keyboard events as input. Then, you can call OpenGL functions (glTranslate) to change the zoom and then redraw everything in your scene.

叫嚣ゝ 2024-07-22 20:32:26

在 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();

实际上,您会使用更复杂的代码来进行缩放,因为这当然取决于视图方向。 此外,您还会有一个更复杂的按键状态函数,它将位于消息循环中并保存应用程序将使用的所有按键的状态,包括鼠标位置和鼠标按钮。

In Win32 you can do something the following to get the state of a key:

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

vKey is an int representing the keys ASCII value.

When you know that the "zoom" key is being pressed, then you can do a translate

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

Realistically you'd use more complex code to do the zoom as this is of course dependant on the view direction. Also you'd have a more complex key state function that would sit in your message loop and hold the state of all the keys your app would use including the mouse position and mouse buttons.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文