Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перевод координат из экранных в OpenGL

289
22 февраля 2005 года
Jeyson
207 / / 20.04.2000
Доброго времени суток. Опять проблемы. Пишу CAD систему. Проблема самая тупая (или нет). Нужно нарисовать к примеру линию по щелчку мыши. Как всем известно, координаты экрана отсчитываются от верхнего левого угла (0,0) и увеличиваются до размера разрешения экрана. У OpenGL координата (0,0) находится в центре окна приложения, при этом края экрана соответствуют 1 или -1. Как преобразовать экранные координаты в координаты OpenGL? Мож маленько коряво выразился. Кстати для смещения и масштабирования изображения пользуюсь gluLookAt(9 параметров). А это тоже сыграет определенную роль. Пока имею следующее, пытаюсь преобразовать в координаты OpenGL экранные координаты мыши. Это явно работает не так.
void CTraceView::OnLButtonDown(UINT nFlags, CPoint point)
{
CRect clientRect;
GetClientRect(&clientRect);
// TODO: Add your message handler code here and/or call default


MouseX1=(float)point.x/clientRect.right;
MouseY1=(float)point.y/clientRect.bottom-0.5;
CView::OnLButtonDown(nFlags, point);
}

Надо получить координаты OpenGL. Например рисую линию,
glBegin (GL_LINES);
glVertex3f (-1,-1,0);
glVertex3f (1,1,0);
glEnd();

кликаю мышью на край линии и в MouseY1 и в MouseX1 должны записаться координаты либо -1, -1 или 1,1 в зависимости от конца линии. Этого не происходит. Использование gluLookAt(9 параметров) эту проблему усугубляет. Что делать???? Заранее благодарен.
7.7K
23 марта 2005 года
Anton S.
45 / / 20.03.2005
Координаты экрана и огл никак не связаны. Вам нужны координаты прямой, относительно той области, в которой вы рисуете, в этом случае вы будете иметь одинаковые координаты, и незачем будет что-либо пересчитывать. Размеры поля огла нужно поставить равными размерам зоны, на которой вы рисуете.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог