一般用來拾取物體:
fPoint CMy3D_SurfaceView::Get_3D_pos(CPoint Tpoint)
{
CMy3D_SurfaceDoc *pDoc=(CMy3D_SurfaceDoc*)GetDocument();
fPoint Rp;
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLfloat winX,winY,winZ;
GLdouble posX,posY,posZ;
glPushMatrix();
glTranslatef(TransVect[0],TransVect[1],TransVect[2]);
if(pDoc->Init)roty=0.0f;
glRotatef(roty+20.0f,0.0f,1.0f,0.0f);
glScalef(scalx,scaly,scalz);
glGetIntegerv(GL_VIEWPORT,viewport);
glGetDoublev(GL_MODELVIEW_MATRIX,modelview);
glGetDoublev(GL_PROJECTION_MATRIX,projection);
glPopMatrix();
winX=(float)Tpoint.x;
winY=viewport[3]-(float)Tpoint.y;
glReadPixels((int)winX,(int)winY,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&winZ);//獲取鼠標屏幕座標處像素的深度Z
gluUnProject(winX,winY,winZ,modelview,projection,viewport,&posX,&posY,&posZ);
Rp.x=posX;
Rp.y=posY;
Rp.z=posZ;
return Rp;
}
的在opengl下從鼠標座標轉換到三維座標的方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
真實的模擬***綜合實驗
wbzjacky
2019-02-24 13:12:37
三層交換機的HSRP、vlan、端口聚合
wbzjacky
2019-02-24 13:12:37
HSRP和二層交換機的端口聚合、vlan
wbzjacky
2019-02-24 13:12:37
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38
IPsec ***實驗
wbzjacky
2019-02-24 13:12:37
CISCO路由AAA的Easy ***
wbzjacky
2019-02-24 13:12:37
CISCO訪問控制列表 企業網絡管理的必殺技
wbzjacky
2019-02-24 13:12:37