| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Получение координат мыши в координатах OpenGL |
| Автор: st063 8.8.2007, 19:19 |
| Доброго всем времени суток! Изучаю OpenGL я совсем немного, и столкнулся со следующей проблемой. Программирую на Visual c++ 6.0. Допустим у меня есть работающее с OpenGL Win32 application. У меня есть некая плоскость обтянутая текстурой, которую я могу вращать с помощью клавиш. И в определенный момент пользователь щелкает по плоскости, например чтобы перенести её в другое место. И проблема такая, как определить шёлкнул ли пользователь по плоскости или нет? Я предполагаю решение этой проблему через получение координат мыши. Получить их не проблема, но ведь OpenGL работает со своими координатами, а я могу получить координаты только относительно окна в пикселях. И как из одного получить другое не представляю! За любою информацию по теме буду очень благодарен! Заранее спасибо! |
| Автор: Solomon 8.8.2007, 19:26 |
| ну переведи координаты оконные в координаты OpenGL... У тебя все это в 3D или 2D? Добавлено через 1 минуту и 1 секунду ксти тему не в том разделе создал.. надо было тут http://forum.vingrad.ru/forum/c-c++multimedia-OpenGL-DirectX.html |
| Автор: st063 8.8.2007, 19:44 |
| 3D, проблема в, том что плоскость может же вращается по трём осям, и надо, что бы как пользователь её не повернул, порограмма определяла, что пользователь кликнул именно по плоскости. Пытался сам написать функцию перевода координат, но ничего путного не вышло. Не подскажите ли нет ли какой-нибудь стандартной функции для этих целей? |
| Автор: Solomon 8.8.2007, 19:57 |
| стандартной нет... в опенЖЛ вообще нет функций для работы с мышей или клавиатурой... млин там как то через нормали надо делать... дома посмотрю если ни кто седня не огтветит завтра думаю напишу что и как |
| Автор: st063 8.8.2007, 21:50 |
| Как я понимаю, при создании окна начало координат помещается в центр? Если это так, то тогда проблему я кажется решил(написал алгоритм на бумажке). Завтра, а может ещё и сегодня, его потестю. Но если у кого-нибудь есть какие-нибудь мысли, буду премного благодарен! |
| Автор: Retro 8.8.2007, 22:24 |
| Насколько я помню, координатную сетку в OpenGL можно задать под себя при инициализации. |
| Автор: st063 9.8.2007, 15:47 |
| А как начало координат поместить в нужную точку? |
| Автор: ShellRaiser 9.8.2007, 16:03 |
| http://www.ultimategameprogramming.com/demoDownload.php?category=OpenGL&page=5 Пример Selection думаю тебе поможет... |
| Автор: st063 9.8.2007, 16:23 |
| Большое спасибо! Пример очень нужный и как раз то, что надо! Всем большое спасибо за помощь по этому вопросу! |