![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
coach |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 28.8.2006 Репутация: нет Всего: нет |
Как определить камеру с помощью gluLookAt() для готового 3D объекта.
|
|||
|
||||
cipher |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.2.2006 Репутация: нет Всего: нет |
А поточнее можно. Что необходимо?
Добавлено @ 16:58 Что значит "определить"? |
|||
|
||||
coach |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 28.8.2006 Репутация: нет Всего: нет |
cipher,
Создан объект, необходимо относительно неподвижного объекта вращать камеру. |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Есть два варианта: первый через векторы работать с камерой, а воторой, он проще и конкретно для тебя подходит - надо работать по уровнениям сферы из тригонометрии. Есть точка неподвижная - центр сферы, а ты вокргу неё описываешь полёт по формуле сферы, задавая положения в полярной системе координат двумя углами.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
coach |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 28.8.2006 Репутация: нет Всего: нет |
Спасибо!
|
|||
|
||||
Arks |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 7.5.2006 Где: Барнаул Репутация: нет Всего: нет |
Кстати, в OpenGL Programming Guide есть пример работы с камерой в полярных координатах. В инете можно найти эту книгу при желании.
|
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
да чего там работать-то? Три переменных для каждой по формуле из двух составляющих(для z - одна) и всё.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
evilguard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.11.2006 Репутация: нет Всего: нет |
У меня проблема. Делаю обзор объекта мышью по окружности. Объект находится в точке с координатами x0,y0,z0 положение камеры вычисляю с помощью полярных координат: c_r - расстояние от камеры до объекта, c_a - горизонтальный угол, c_b - угол между вектором камеры и осью z. Вот код функции OnDraw:
Так вот, при изменении угла c_b, то есть вращения в плоскости yz(допустим зафиксировав угол c_a) при прохождении углом значения пи/2,(при этом смотришь на объект сверху вниз), объект резко разворачивается на 180 градусов в горизонтальной плоскости(или же камера разворачивается). Подскажите как поправить код, пожалуста. Или может быть лучше с использованием функций glTranslate и glRotate? |
|||
|
||||
Rickert |
|
||||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
У тебя вроде углы неправильно расчитываются.
Где ATOR():
А speed - скорость(возьми 0.01 для начала) -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
||||
|
|||||
evilguard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.11.2006 Репутация: нет Всего: нет |
Rickert, Понимаешь, вращается все нормально во всех плоскостях, углы у меня в радианах, никакие пересчетные коэффициенты не нужны. Проблема возникает при прохождении углом значения пи/2 сверху вниз когда смотришь на объект.
|
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
А! Ну так естественно! получается ведь что ты начинаешь смотреть на объект вверх ногами
![]() -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
evilguard |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.11.2006 Репутация: нет Всего: нет |
||||
|
||||
Sandrick |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 8.1.2007 Репутация: нет Всего: нет |
Если не использовать функцию gluLookAt, то у меня получился такой вполне работоспособный код вращения:
Где mmatrix - матрица GL_MODELVIEW. А dXAngle и dYAngle - углы вращения. |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
evilguard, твой файл не запускается. Говорит, что некорректно настроено приложение.
Ты с помощью МФЦ пишешь чтоли? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: нет Всего: 11 |
У меня открылось в окошке МФЦ.
-------------------- <удалено администрацией форума> |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |