| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Вопрос о glulookat |
| Автор: Salatovec 30.12.2008, 03:20 |
| Здравствуйте, столкнулся с проблемой - имеется шар и функция глюлукат след. вида: gluLookAt(Cx+Xpos,Cy+Ypos,Cz+Zpos,Xpos,Ypos,Zpos,0,1,0); Шар перемещаю по оси Y вниз и на экране он, как и должен, летит вниз. Но если я вращаю камеру и смотрю на шар снизу - то шар не летит в камеру, а летит вниз. Как я понял оси перемещаются вместе с камерой. А как их закрепить? З.Ы. извиняюсь если некорректно поставил вопрос, но я надеюсь проблема ясна =\ Заранее спасибо! |
| Автор: Rickert 30.12.2008, 05:39 |
| Нет, ничего не ясно. Опишите переменные для начала: какая за что отвечает, какая меняется. |
| Автор: Salatovec 30.12.2008, 17:43 |
| Xpos,Ypos,Zpos это координаты шара, меняется Ypos от 0 до 400 с шагом 10. Cx,Cy,Cz это координаты положения камеры, меняются Cy и Cz, т.к. камеру я вращаю по вертикальной оси, по формулам Cy = 20*sin(angleV); Cz = 20*cos(angleV); где angleV+=M_PI/180 или angleV-=M_PI/180; |
| Автор: Gongex 14.2.2009, 15:54 |
| давай я тебе кину исходник для перемещения в 3Д уровне.Я скачивал его на другом сайте. Дело в том что у тебя Пи и /180 этого мало,потому что в моем исходнике перменных 10-15 для движения в 3Д мире. Чувствительность мыши,велчина передвижения,угол по х,угол по игрек.... дофига,Надо быть физиком что бы такое сделать. Добавлено через 7 минут и 28 секунд И еще,ты не прав.Там не координаты шара....там 9 переменных в глюлокАТ...первые три-это откуда смотрим,вторые три -куда смотрим....Элементарнее тебе сделать gluLookAt(Mx,My,Mz,Cx,Cy,Cz,0,1,0); if VK_LEFT {Cx=Cx-1} if VK_UP {Cy=Cy+1} И шар буде двигаться ,и ты будеть стоять смотреть на месте. |