Как разрешить пользователю масштабировать и поворачивать 3D-объекты в Opengl и Visual C

#visual-c #opengl #glut

#visual-c #opengl #перенасыщение

Вопрос:

Я новичок в opengl и Visual c . Я создал пример приложения, которое вращает 3D-фигуры в opengl. Я хочу разрешить пользователю поворачивать и масштабировать объект. Пожалуйста, приведите мне пример того, как это сделать.

Я попробовал новое руководство:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=48

Я не могу понять структуру классов в примере. Есть ли какой-либо простой способ добиться этого?

Я также нашел библиотеку:http://www.nigels.com/glt/gltzpr

Но все еще не могу понять, как это сделать. Пожалуйста, помогите мне.

Ответ №1:

Масштабирование обычно выполняется с помощью gluLookAt. Третий параметр — это расстояние просмотра. Вот некоторый базовый пример выполнения этого :

http://graphics.stanford.edu/courses/cs248-01/OpenGLHelpSession/code_example.html

Посмотрите в display (), чтобы увидеть, как используется расстояние просмотра, и в MouseMotion (), чтобы увидеть, как изменяется значение и обновляется рисунок.

Комментарии:

1. Большое спасибо за ответ, Джоэл. Но я не могу запустить этот пример.

2. о, возможно, это немного устарело. Посмотрите документ для gluLookAt

3. ОК. Я буду. Спасибо. Есть ли способ разрешить пользователю поворачивать объект? Я еще не получил ни одного примера. Пожалуйста, покажите мне один.

4. Взгляните на новые руководства по OpenGL: nehe.gamedev.net/data/lessons/lesson.asp?lesson=10

5. @Joel Falcou: gluLookAt определяет точку обзора, то есть вы перемещаетесь по камере с ее помощью. В реальной камере фокусное расстояние изменяется при масштабировании; это напрямую влияет на поле зрения gluPerspective или при постоянных ограничениях расстояния до ближней плоскости отсечения.