![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]()
Добрый вечер. Я сделал(пока не полностью) комнату и хочу передвигать в ней камеру. Для этого выбрал функцию gluLookAt. Нашел интересную статью. Там есть такой код.
Код:
Следующем кодом устанавливается камера. Код:
P.S. Вот статья |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
1) Кватернионы http://www.gamedev.ru/code/articles/...nad_kvaternion
2) Сферическая система координат 3) Матричные преобразования |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Тогда второй вариант самое оно, sin, cos и пара формул.
Достаточно задать широту, долготу и радиус в сферической системе координат, а потом перевести их в декартову систему координат и как следствие получить вектор направления взгляда. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]()
Доброе утро. Ну вот и возникли вопросы
![]() В сферической системе координат три переменные: угол между осью Х, Угол между осью Z точка p и расстояние к ней r. Чтобы перевести в декартовую систему, нужно воспользоваться следующей формулой ![]() Заранее благодарю за помощь. |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
r = 1
тэта = фи = 0 фи += deltaX * некий маленький коэффициент(0,05 например) тэта += deltaY * некий маленький коэффициент(0,05 например) /*ограничение угла тэта, если требуется. вместо +-pi/2 можно указать любой свой угол*/ if(тэта>pi/2) тэта = pi/2 if(тэта<-pi/2) тэта = -pi/2 deltaX и deltaY разница между старым положением курсора и новым |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]()
И далее по предложенной мной формуле? Я не всматривался в нее, а теперь заметил, что ничего по этому поводу не понимаю. Я пороюсь в алгебре и геометрии, но все же прошу вас показать, как это делается, чтобы сравнится с правильным вариантом.
Оффтоп += это операция прибавления к переменной в С++? Последний раз редактировалось _PROGRAMM_; 14.12.2011 в 14:45. |
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() Код:
Цитата:
|
|
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]()
Спасибо. В общих словах, я что-то сделал. Уже что-то наблюдается, но картинка дергается и возвращается обратно. Код я смастерил вот такой.
Код:
Последний раз редактировалось _PROGRAMM_; 14.12.2011 в 20:16. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не работает gluLookat | SAMOUCHKA | Qt и кроссплатформенное программирование С/С++ | 2 | 23.09.2011 18:52 |
Вращение камеры вокруг своей оси [OpenGL] | russian-stalker | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 14.04.2011 21:03 |
Direct3D9, вращение камеры. | _-Re@l-_ | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 3 | 06.04.2011 20:49 |
Вращение камеры (Direct3D) | AidarBik | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 24.07.2009 08:45 |