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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование координат 
:(
    Опции темы
PRF
Дата 18.4.2009, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте, конечно вопрос наверно не по теме, но к графике он относиться и надо это тоже знать, а я вот не знаю!)) 
Вопрос: Есть точки (или точка, разницы нет) в трехмерном пространстве(в частности перспективной проекции), как эти точки привести к экранным координатам.? заранее спасибо.
PM MAIL   Вверх
kemiisto
  Дата 18.4.2009, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



В OpenGL это делается с помощью gluProject. Я сейчас как раз ковыряю OpenGL + Qt. Вот в старых сорцах своих нашёл:
Код

QPoint GLWidget::project(const Stereometry::Point& p) const
{
  // We'll need the matrices that define the projection
  GLdouble modelview[16];
  GLdouble projection[16];
  GLint viewport[4];

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

  GLdouble x, y, z;
  gluProject(p.x(), p.y(), p.z(), modelview, projection, viewport, &x, &y, &z);
  return QPoint(int(x), int(viewport[3] - y));
}

Передаём точку в пространстве - получаем точку в оконной системе координат. Необходимо знать матрицы модельно-вилового и проекционного преобразований.

Что-то на ум не приходит где бы про это почитать. Может Френсис Хилл, OpenGL. Программирование компьютерной графики...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
PRF
Дата 18.4.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



не надо мне opengl и directx , этими средствами я и так знаю как сделать, есть какие то формулы для этого дела..

Добавлено через 2 минуты и 47 секунд
Ну. матрицы я как бы сделал для перспективного преобразования.. точки в перспективной проекции я получил, а теперь их надо преобразовать в экранные.. так как ну может не совпадать. ... есть какие то простые формулы.. типо соотношение ширины и высоты экрана, но я точно не знаю
PM MAIL   Вверх
Alexeis
Дата 19.4.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(PRF @  18.4.2009,  21:52 Найти цитируемый пост)
так как ну может не совпадать. ... есть какие то простые формулы.. типо соотношение ширины и высоты экрана, но я точно не знаю 

  Просто убрать z координату и проверить на попадание точки в прямоугольник экрана.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

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

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

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


 




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


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

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