Перевод координат из экранных в 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 параметров) эту проблему усугубляет. Что делать???? Заранее благодарен.
Координаты экрана и огл никак не связаны. Вам нужны координаты прямой, относительно той области, в которой вы рисуете, в этом случае вы будете иметь одинаковые координаты, и незачем будет что-либо пересчитывать. Размеры поля огла нужно поставить равными размерам зоны, на которой вы рисуете.