glint viewport[4];
gldouble modelview[16];
gldouble projection[16];
glfloat winx, winy, winz;
gldouble posx, posy, posz;
glpushmatrix();
// 變換要繪圖函式裡的順序一樣,否則座標轉換會產生錯誤
glscalef(m_srtmatrix[0], m_srtmatrix[1], m_srtmatrix[2]); // 縮放、平移、旋轉變換
glrotatef(m_srtmatrix[3], 1.0f, 0.0f, 0.0f);
glrotatef(m_srtmatrix[4], 0.0f, 1.0f, 0.0f);
glrotatef(m_srtmatrix[5], 0.0f, 0.0f, 1.0f);
gltranslatef(m_srtmatrix[6], m_srtmatrix[7], m_srtmatrix[8]);
glgetintegerv(gl_viewport, viewport); // 得到的是最後乙個設定視口的引數
glgetdoublev(gl_modelview_matrix, modelview);
glgetdoublev(gl_projection_matrix, projection);
glpopmatrix();
winx = x;
winy = screenheight - y;
glreadpixels((int)winx, (int)winy, 1, 1, gl_depth_component, gl_float, &winz);
gluunproject(winx, winy, winz, modelview, projection, viewport, &posx, &posy, &posz);
gluunproject()
gluproject()
螢幕座標到opengl世界座標轉換
螢幕座標到opengl世界座標轉換
很多人用opengl繪圖會遇到乙個問題即螢幕座標向opengl座標轉換,在網上流傳著如下類似的 glint viewport 4 gldouble modelview 16 gldouble projection 16 glfloat winx,winy,winz gldouble posx,pos...
螢幕座標到opengl世界座標轉換
很多人用opengl繪圖會遇到乙個問題即螢幕座標向opengl座標轉換,在網上流傳著如下類似的 glint viewport 4 gldouble modelview 16 gldouble projection 16 glfloat winx,winy,winz gldouble posx,pos...
opengl 螢幕座標
建立opengl模型過程 opengl座標變換很有特點,為了簡單描述先定義2個座標系 1 世界座標系 無論如何變換,世界座標系都不動,以螢幕中心為原點 0,0,0 你面對螢幕,你的右邊是x正軸,上面是y正軸,螢幕指向你的為z正軸。2 當前繪圖座標系 即區域性座標系 當前繪圖座標系是繪製物體時的座標系...