温江皇冠假日酒店如何:屏幕坐标如何转化为opengl中的坐标
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 12:34:58
屏幕坐标如何转化为opengl中的坐标啊?各位帮帮忙 glMatrixMode(GL_MODELVIEW);
glPushMatrix();
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLfloat winX, winY, winZ;
GLdouble posX, posY, posZ;
CPoint rPoint;
glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
glGetDoublev( GL_PROJECTION_MATRIX, projection );
glGetIntegerv( GL_VIEWPORT, viewport );
winX = (float)point.x;
winY = (float)viewport[3] - (float)point.y;
glReadPixels( point.x, int(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ );
gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY,
&posZ); 这是我从网上看的一段代码,但好像不怎么准确我也遇到这种问题了。就是gluUnProject不起作用,调试的时候传进去的参数都有值,但是返回的posx就没有值了除了与PushMatrix()对应的glPopMatrix()没有,这段代码我没看出什么问题来!以下是一段将屏幕坐标转化为三维空间坐标的代码
GLfloat winX, winY,winZ;
GLdouble posXf, posYf, posZf,posXn, posYn, posZn;
GLdouble posX,posY,posZ;
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
glPushMatrix();
glGetIntegerv(GL_VIEWPORT, viewport); // 得到的是最后一个设置视口的参数
glGetDoublev(GL_MODELVIEW_MATRIX, modelview);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glPopMatrix();
winX = point.x;
winY = viewport[3] - point.y;
gluUnProject(winX, winY, 0, modelview, projection, viewport, &posXn, &posYn, &posZn);
gluUnProject(winX, winY, .1, modelview, projection, viewport, &posXf, &posYf, &posZf);
posX=-posZf/(posZn-posZf)*(posXn-posXf)+posXf;
posY=-posZf/(posZn-posZf)*(posYn-posYf)+posYf;//posZ默认为0 屏幕坐标如何转化为opengl中的坐标
glPushMatrix();
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLfloat winX, winY, winZ;
GLdouble posX, posY, posZ;
CPoint rPoint;
glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
glGetDoublev( GL_PROJECTION_MATRIX, projection );
glGetIntegerv( GL_VIEWPORT, viewport );
winX = (float)point.x;
winY = (float)viewport[3] - (float)point.y;
glReadPixels( point.x, int(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ );
gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY,
&posZ); 这是我从网上看的一段代码,但好像不怎么准确我也遇到这种问题了。就是gluUnProject不起作用,调试的时候传进去的参数都有值,但是返回的posx就没有值了除了与PushMatrix()对应的glPopMatrix()没有,这段代码我没看出什么问题来!以下是一段将屏幕坐标转化为三维空间坐标的代码
GLfloat winX, winY,winZ;
GLdouble posXf, posYf, posZf,posXn, posYn, posZn;
GLdouble posX,posY,posZ;
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
glPushMatrix();
glGetIntegerv(GL_VIEWPORT, viewport); // 得到的是最后一个设置视口的参数
glGetDoublev(GL_MODELVIEW_MATRIX, modelview);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glPopMatrix();
winX = point.x;
winY = viewport[3] - point.y;
gluUnProject(winX, winY, 0, modelview, projection, viewport, &posXn, &posYn, &posZn);
gluUnProject(winX, winY, .1, modelview, projection, viewport, &posXf, &posYf, &posZf);
posX=-posZf/(posZn-posZf)*(posXn-posXf)+posXf;
posY=-posZf/(posZn-posZf)*(posYn-posYf)+posYf;//posZ默认为0 屏幕坐标如何转化为opengl中的坐标
OPENGL中的坐标问题
对数坐标如何转化成线性坐标
屏幕坐标向OpenGL坐标转换的问题
复数转化为极坐标?
请问如何把复数转化为极坐标?
opengl的glRasterPos2i坐标问题
Flash中的坐标
建筑总平面图中的两点大地坐标X、Y确定的直线在AutoCAD中如何转换为笛卡儿坐标确定直线位置
如何让用按键精灵让鼠标移动到屏幕上颜色为XX的地方(不是坐标)
如何将不同坐标中的曲线在同一坐标中显示,用那个软件,
如何使用gooleearth坐标
大脚如何标记坐标
3D中的UVW贴图坐标如何使用?
如何在C#中的WEB项目里画坐标啊?
delphi如何自动点击窗体中的任意一个坐标点?
贴吧中的坐标是什么
请问如何能在C++中将屏幕坐标原点移到屏幕中心
autocad中的直角坐标、相对坐标、及极坐标怎样使用?
怎样将autocad中的二维坐标转换成三维坐标
如何利用极坐标画图
魔兽世界中如何显示坐标?
抛:如何得求垂足坐标?
魔兽世界中如何显示坐标?
三坐标测量仪如何使用?