Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование из Экранных координат, Преобр-ть координаты клика в 3D коорд-ы. 
:(
    Опции темы
TommyAlice
Дата 26.3.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.3.2007

Репутация: нет
Всего: нет



Здравствуйте

Такой вопрос: пользователь смотрит на сцену, при помощи движений мыши изменяет угол зрения, удаленность и тп. Кликая мышью, необходимо разместить объект в некоторой плосоксти или захватить объект в окресности клика. То есть необходимо определить множество точек соотвествующее экранной координате в 3D простанстве. Как это сделать. Ведь выполняеться множество преобразований, как сделать это не запоминая их всех, может быть есть какая-то функция преобразования из экранных в пространсвенные?
PM MAIL   Вверх
Moid
Дата 27.3.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: нет
Всего: 3



Возьми любой учебник по OpenGL там описыны процедуры сдвигов и поворотов матрицы...
вот хотябы тот, что предлагают на форуме:ТУТ
А если вы немного подумаете, то и как преобразовать координыты мыши на форме в 3D тоже догадаетесь... Хотя там не совсем 3d получится, 3-ю координатную ось уже нужно будет при определенных условиях определять... К примеру как это сделано в 3ds Max.


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
Rickert
Дата 6.4.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Глупости всё, не слушай.
Вот код:
Код

...
double projection[16], modelview[16], wx, wy, wz, vz;
int viewport[4];

glGetIntegerv(GL_VIEWPORT, viewport);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glGetDoublev(GL_MODELVIEW_MATRIX, modelview);

glReadPixels(point.x, point.y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &vz);
gluUnProject(point.x, point.y - 1, vz, modelview, projection, viewport, &wx, &wy, &wz);
...

point - координаты курсора на экране.
wx, wy, wz - в 3D пространстве.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.