坐标转换:3D坐标转换成屏幕坐标的思路方法



    游戏开发中经常涉及到3D坐标定位以及3D坐标转换成屏幕坐标今天我们就来用代码实现看下面代码通过代码来学习中国自学编程网 www.zxbc.cn

CPo D3DToScreen2D(CPo3d pt3D ,\\
     const GLdouble modelMatrix[16], const GLdouble projMatrix[16], const GL viewport[4])
{
 GLdouble x,y,z;
 gluProject( pt3D.x, pt3D.y, pt3D.z, 
  modelMatrix, projMatrix, viewport, 
  &x, &y, &z);
 CPo ptOut;
 ptOut.x = (x);
 ptOut.y = viewport[3]-(y);
  ptOut;

应用:
CPo CCityPlanView::GetPo3DTo2D(CPo3d pt3D)
{
 GLdouble    modelview[16];
 GLdouble    projection[16];
 GL       viewport[4];
 wglMakeCurrent(m_hDC,m_hRC);
 glGetDoublev (GL_MODELVIEW_MATRIX, modelview);
 glGetDoublev (GL_PROJECTION_MATRIX, projection);
 glGetIntegerv (GL_VIEWPORT, viewport);
 CPo ptOut = D3DToScreen2D(pt3D,modelview,projection,viewport);
 wglMakeCurrent(m_hDC,NULL);
  ptOut;
}
由于从GLdouble 转换成 使得这种思路方法存在个单位误差!

Tags:  arcgis坐标转换 坐标转换经纬度 坐标转换软件 坐标转换

延伸阅读

最新评论

发表评论