Как использовать клавиатуру в качестве команды для увеличения OpenGL? - PullRequest
0 голосов
/ 28 марта 2009

Может кто-нибудь сказать мне, как?

Я никогда не делал этого раньше, поэтому я не уверен, какую библиотеку использовать и как вызывать команду, которую клавиша нажимала как инструкцию, а не как ввод.

Я пишу программу OpenGL на Visio C ++

Ответы [ 2 ]

3 голосов
/ 28 марта 2009

Увеличение OpenGL и получение входных данных клавиатуры - это две разные вещи. Вы можете использовать любой графический интерфейс (MFC, wxWidgets, Qt, .Net) для захвата событий клавиатуры в качестве ввода. Затем вы можете вызвать функции OpenGL (glTranslate), чтобы изменить масштаб, а затем перерисовать все в вашей сцене.

1 голос
/ 28 марта 2009

В Win32 вы можете сделать следующее, чтобы получить состояние ключа:

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

vKey - это целое число, представляющее значение ASCII ключей.

Когда вы знаете, что нажата клавиша «зум», вы можете сделать перевод

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

Реально вы бы использовали более сложный код для масштабирования, поскольку это, конечно, зависит от направления просмотра. Также у вас будет более сложная функция состояния клавиш, которая будет находиться в вашем цикле сообщений и содержать состояние всех клавиш, которые будет использовать ваше приложение, включая положение мыши и кнопки мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...