简介
如何在三维坐标中选择点是一个非常非常有用的操作。
code
void pick_point(int x, int y, double p[3])
{
GLint viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
GLdouble winX = double(x);
GLdouble winY = double(viewport[3] - y);
GLfloat winZ = 0.0;
glReadPixels((int)winX, (int)winY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ);
gluUnProject(winX, winY, (GLdouble)winZ, modelview_matrix_, projection_matrix_, viewport, &p[0], &p[1], &p[2]);
}
参考链接
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》