|
|
我在屏幕上用鼠标在屏幕上选取了一个点,然后用gluUnProject函数得到两个最近和最远点的世界坐标,如下:
// 取近裁剪面交点
gluUnProject( (GLdouble) mouse_x, (GLdouble) mouse_y, 0.0,
modelview, projection, viewport,
&near_world_x, &near_world_y, &near_world_z);
// 取远裁剪面交点
gluUnProject( (GLdouble) mouse_x, (GLdouble) mouse_y, 1.0,
modelview, projection, viewport,
&far_world_x, &far_world_y, &far_world_z);
然后我希望在这两点之间画一条线:
//画所选取的点的直线
glBegin(GL_LINES);
glVertex3f(near_world_x, near_world_y, near_world_z);
glVertex3f(far_world_x,far_world_y, far_world_z);
glEnd();
上面这么画直线好像是不对的,gluUnProject函数取到的点是世界坐标,而glVertex3f函数画的是局部坐标,那我应该怎么转换,把(near_world_x, near_world_y, near_world_z)和(far_world_x,far_world_y, far_world_z)两点转成局部坐标画出来?谢谢
|
|