我正在尝试在 2D 中绘制形状,并且正在尝试使用 gluProject 在 3D 和 2D 坐标之间进行转换。基本上我的目标是在 (200,200) 上画一个点,并且该点将被适当地绘制(假设起始位置是 0,0,0)。
我已经像这样初始化了 gluProject -
GLdouble modelView[16];
GLdouble projection[16];
GLint viewport[4];
glGetDoublev(GL_MODELVIEW_MATRIX,modelView);
glGetDoublev(GL_PROJECTION_MATRIX,projection);
glGetIntegerv(GL_VIEWPORT,viewport);
我在这样的动画方法中调用它
double tx, ty, tz;
gluProject(0.0,0.0,0.0,modelView,projection,viewport,&tx,&ty,&tz);
cout<<"tx,ty,tz: "<<tx<<","<<ty<<","<<tz<<endl;
我得到的值很奇怪(-9e61,-9e61,-9e61)。我猜这是因为我乘以一个不同的矩阵而不是我应该的。有什么建议吗?