![]() |
|
Модераторы: Rickert |
![]()
|
|
| st063 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Доброго всем времени суток!
Изучаю OpenGL я совсем немного, и столкнулся со следующей проблемой. Программирую на Visual c++ 6.0. Допустим у меня есть работающее с OpenGL Win32 application. У меня есть некая плоскость обтянутая текстурой, которую я могу вращать с помощью клавиш. И в определенный момент пользователь щелкает по плоскости, например чтобы перенести её в другое место. И проблема такая, как определить шёлкнул ли пользователь по плоскости или нет? Я предполагаю решение этой проблему через получение координат мыши. Получить их не проблема, но ведь OpenGL работает со своими координатами, а я могу получить координаты только относительно окна в пикселях. И как из одного получить другое не представляю! За любою информацию по теме буду очень благодарен! Заранее спасибо! |
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
ну переведи координаты оконные в координаты OpenGL...
У тебя все это в 3D или 2D? Добавлено через 1 минуту и 1 секунду ксти тему не в том разделе создал.. надо было тут http://forum.vingrad.ru/forum/c-c++multime...GL-DirectX.html -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| st063 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
3D, проблема в, том что плоскость может же вращается по трём осям, и надо, что бы как пользователь её не повернул, порограмма определяла, что пользователь кликнул именно по плоскости. Пытался сам написать функцию перевода координат, но ничего путного не вышло. Не подскажите ли нет ли какой-нибудь стандартной функции для этих целей?
|
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
стандартной нет... в опенЖЛ вообще нет функций для работы с мышей или клавиатурой... млин там как то через нормали надо делать... дома посмотрю если ни кто седня не огтветит завтра думаю напишу что и как
-------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| st063 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Как я понимаю, при создании окна начало координат помещается в центр? Если это так, то тогда проблему я кажется решил(написал алгоритм на бумажке). Завтра, а может ещё и сегодня, его потестю. Но если у кого-нибудь есть какие-нибудь мысли, буду премного благодарен!
|
|||
|
||||
| Retro |
|
|||
![]() Диалектик ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1934 Регистрация: 28.6.2005 Где: Киев Репутация: нет Всего: 117 |
Насколько я помню, координатную сетку в OpenGL можно задать под себя при инициализации.
|
|||
|
||||
| st063 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
А как начало координат поместить в нужную точку?
|
|||
|
||||
| ShellRaiser |
|
|||
![]() еще чуть и закоммичу ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 20.7.2007 Где: Белaрусь, Гродно Репутация: 1 Всего: 1 |
||||
|
||||
| st063 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Большое спасибо! Пример очень нужный и как раз то, что надо! Всем большое спасибо за помощь по этому вопросу!
|
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |