![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
MrCherry |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
при кручении мышей дёргается. как исправить? |
|||
|
||||
MrCherry |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
совсем никто такую мелочь не знает?
![]() |
|||
|
||||
sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: нет Всего: 10 |
Здравствуй, дружище !
Чего ты добиваешься ? Ты хочешь управлять мышью ? Если это так, то учти, что 1) при работе с матрицей рисования модели функции такие как glRotatef - поворачивают систему отсчета рисования модели относительно оси, проходящей через центр системы отсчета рисования модели, причем направление поворота против часовой стрелки относительно наблюдателя на которого направлен вектор оси поворота; glTranslatef - перемещают систему отсчета рисования модели в точку на которую указывает радиус-вектор, который задан относительно этой же системы отсчета рисования модели. 2) при работе с матрицей системы координат камеры функции такие как glRotatef - поворачивают систему координат камеры относительно оси, проходящей через центр глобальной системы отсчета, причем направление поворота по часовой стрелке относительно наблюдателя на которого направлен вектор оси поворота; glTranslatef - перемещают систему координат камеры в точку на которую указывает радиус-вектор, который задан относительно глобальной системы координат. Поэтому при вращении камеры функцией glRotatef камера будет вращаться вокруг оси проходящей через центр глобальной системы координат, но не вокруг оси системы координат самой камеры. Допустим имеется персонаж которым ты управляешь и камера для него. Тогда существует такая прямая, которая проходит через этого персонажа и параллельна оси Y глобальной системы координат. Назовем эту прямую "прямая g". Имеются оси локальной системы координат камеры. То в ответ на изменение горизонтальной координаты указателя мыши системы координат камеры должна поворачиваться вокруг прямой g на угол пропорциональный изменению горизонтальной координаты указателя мыши. В ответ на изменение вертикальной координаты указателя мыши системы координат камеры должна поворачиваться вокруг оси X системы координат камеры на угол пропорциональный изменению вертикальной координаты указателя мыши. Если при изменении горизонтальной координаты мыши камеру вращать вокруг оси Y локальной системы координат камеры, и при изменении вертикальной координаты мыши камеру вращать вокруг оси X локальной системы координат камеры, то "при кручении мышей" у тебя камера постепенно повернется вокруг оси Z своей системы координат ;-) ;-) . Поверь мне. У меня есть небольшой опыт в этом. Если тебе нужен набор функций для управления камерой мышью, то я могу их тебе тут прислать... Добавлено @ 04:17 Здравствуй, дружище ! Чего ты добиваешься ? Ты хочешь управлять мышью ? Если это так, то учти, что 1) при работе с матрицей рисования модели функции такие как glRotatef - поворачивают систему отсчета рисования модели относительно оси, проходящей через центр системы отсчета рисования модели, причем направление поворота против часовой стрелки относительно наблюдателя на которого направлен вектор оси поворота; glTranslatef - перемещают систему отсчета рисования модели в точку на которую указывает радиус-вектор, который задан относительно этой же системы отсчета рисования модели. 2) при работе с матрицей системы координат камеры функции такие как glRotatef - поворачивают систему координат камеры относительно оси, проходящей через центр глобальной системы отсчета, причем направление поворота по часовой стрелке относительно наблюдателя на которого направлен вектор оси поворота; glTranslatef - перемещают систему координат камеры в точку на которую указывает радиус-вектор, который задан относительно глобальной системы координат. Поэтому при вращении камеры функцией glRotatef камера будет вращаться вокруг оси проходящей через центр глобальной системы координат, но не вокруг оси системы координат самой камеры. Допустим имеется персонаж которым ты управляешь и камера для него. Тогда существует такая прямая, которая проходит через этого персонажа и параллельна оси Y глобальной системы координат. Назовем эту прямую "прямая g". Имеются оси локальной системы координат камеры. То в ответ на изменение горизонтальной координаты указателя мыши системы координат камеры должна поворачиваться вокруг прямой g на угол про% Добавлено @ 04:17 Здравствуй, дружище ! Чего ты добиваешься ? Ты хочешь управлять мышью ? Если это так, то учти, что 1) при работе с матрицей рисования модели функции такие как glRotatef - поворачивают систему отсчета рисования модели относительно оси, проходящей через центр системы отсчета рисования модели, причем направление поворота против часовой стрелки относительно наблюдателя на которого направлен вектор оси поворота; glTranslatef - перемещают систему отсчета рисования модели в точку на которую указывает радиус-вектор, который задан относительно этой же системы отсчета рисования модели. 2) при работе с матрицей системы координат камеры функции такие как glRotatef - поворачивают систему координат камеры относительно оси, проходящей через центр глобальной системы отсчета, причем направление поворота по часовой стрелке относительно наблюдателя на которого направлен вектор оси поворота; glTranslatef - перемещают систему координат камеры в точку на которую указывает радиус-вектор, который задан относительно глобальной системы координат. Поэтому при вращении камеры функцией glRotatef камера будет вращаться вокруг оси проходящей через центр глобальной системы координат, но не вокруг оси системы координат самой камеры. Допустим имеется персонаж которым ты управляешь и камера для него. Тогда существует такая прямая, которая проходит через этого персонажа и параллельна оси Y глобальной системы координат. Назовем эту прямую "прямая g". Имеются оси локальной системы координат камеры. То в ответ на изменение горизонтальной координаты указателя мыши системы координат камеры должна поворачиваться вокруг прямой g на угол про% |
|||
|
||||
MrCherry |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
это то я кажись понял.. я просто не могу понять как сделать чтобы когда клавиша мыши нажата - предмет двигается за движением мыши, а при отпускании - сохранял ускорение. ускорение сохраняет, но при нажатой мыши предмет дрыгается при изменении направления движения мыши
|
|||
|
||||
sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: нет Всего: 10 |
Ну так с самого начала надо было так и писать, что ты хочешь объекты перемещать.
Я не буду задумываться над твоим кодом, потому что необходима конкретная постановка задачи перемещения мышью объектов. -------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
MrCherry, для начала советую не использовать GLU функции для инициализации OGL'а.
Ищи в Яндексе "Уроки NeHe" Учись по ним - и поймёшь то, как надо работать со всем этим. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
MrCherry |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
ты про glut? от него отказался... хотя неокончательно.. надо обмыслить..
nehe давно уже находил, ща прошёл шесть уроков, втыкаю, но хочется вот эту крутилку заставить работать, а потом может как нить открувание 3ds приделать.. ну это чисто для практики.. |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Так ты раз с Нех знаком - с ним и работай. А глут вообще забудь - это для лентеяв
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |