OpenGL:三维平面坐标转化为二维
来源:互联网 发布:淘宝会员等级在哪里看 编辑:程序博客网 时间:2024/05/10 06:15
相关联文章:openGL中视口变换矩阵求解
osg中世界坐标系到屏幕坐标系的变换
//返回三维点在二维屏幕上的投影点osg::Vec3d WorldToScreen(osgViewer::View* view,osg::Vec3 worldpoint){double in[4],out[4];in[0] = worldpoint._v[0];in[1] = worldpoint._v[1];in[2] = worldpoint._v[2];in[3] = 1.0;//获得当前的投影矩阵和模型视图矩阵osg::Matrix projectMatrix = view->getCamera()->getProjectionMatrix();osg::Matrix viewMatrix = view->getCamera()->getViewMatrix();//变换模型视图矩阵double modelViewMatrix[16];memcpy(modelViewMatrix,viewprojectMatrix.ptr(),sizeof(GLdouble)*16);Transform_Point(out,modelViewMatrix,in);//变换投影矩阵double myprojectMatrix[16];memcpy(myprojectMatrix,projectMatrix.ptr(),sizeof(GLdouble)*16);Transform_Point(out,myprojectMatrix,in);//变换视口变换矩阵if(in[3] == 0.0) return osg::Vec3d(0,0,0); in[0]/=in[3];in[1]/=in[3];in[2]/=in[3];int viewPort[4];osg::Viewport* myviewport = view->getCamera()->getViewport();viewPort[0] = myviewport->x();viewPort[1] = myviewport->y();viewPort[2] = myviewport->width();viewPort[3] = myviewport->height();//计算二维屏幕投影点osg::Vec3d screenPoint;screenPoint._v[0] = (int)(viewPort[0] + (1+in[0])*viewPort[2]/2+0.5);screenPoint._v[0] = (int)(viewPort[1] + (1+in[1])*viewPort[3]/2+0.5);screenPoint._v[2] = 0;return screenPoint;}
上面的程序只有最后计算二维屏幕投影点时,为啥要加上0.5,不懂!!
0 0
- OpenGL:三维平面坐标转化为二维
- OpenGL:屏幕二维坐标转化为三维模型坐标
- OpenGL屏幕二维坐标转化成三维模型坐标
- OpenGL: 屏幕二维坐标转化成三维模型坐标
- 三维世界坐标转化为二维屏幕坐标
- Opengl二维坐标转三维坐标
- openGL es2.0 render坐标(三维) 转换为 屏幕坐标(二维)
- OpenGL -- 三维到二维,坐标系统
- openGL将三维坐标转换成二维坐标在…
- 屏幕坐标转化为三维物体的坐标
- OpenGL三维坐标显示
- 屏幕坐标转化为世界坐标(vc opengl)
- OpenGL三维坐标与二维坐标:gluProject 和 gluUnproject 的详解
- OpenGL将二维图形显示为三维点云图
- 二维坐标变换三维坐标未解答
- OpenGL屏幕坐标到三维坐标转换
- 屏幕坐标向opengl三维坐标转换
- OpenGL由屏幕坐标转换三维坐标
- XX游戏R3层反调试 初探
- 最小生成树算法
- error LNK2038: 检测到“_MSC_VER”的不匹配项问题
- 一页纸项目管理整理
- 第一章 准备工作、安装时的问题、基本命令
- OpenGL:三维平面坐标转化为二维
- linux 删除当前目录下的某一类型文件
- libevent源码分析
- 利用FrameLayout中图片的切换来实现换灯片
- 使用android自带的SwipeRefreshLayout实现下拉刷新
- Web 安全之内容安全策略 (CSP)
- jQuery通过AJAX快速批量提交表单数据
- 传统BP神经网络完整例子(电力负荷预测)
- 【leetcode】:leetcode 69 Sqrt(x) 牛顿迭代法