CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  图形处理/算法

opengl:如何使显示的物体开始就位于viewport的中央,并且大小适中?

楼主mmvr()2004-08-04 20:58:49 在 VC/MFC / 图形处理/算法 提问

做了个读取3维文件模型的小程序,由于模型大小不一,显示的时候有的看不全,有的很小,经常需要手动调整。  
  请问有没有什么方法可以根据模型的大小及位置调整视口,使显示大小和中心都适中? 问题点数:0、回复次数:6Top

1 楼syy64(太平洋)回复于 2004-08-04 22:26:02 得分 0

设置投影矩阵和模型矩阵。Top

2 楼mmvr()回复于 2004-08-05 00:37:16 得分 0

如何设置?能否说详细一些?Top

3 楼Tieren_love(甜蜜程序员)回复于 2004-08-05 12:30:14 得分 0

太平洋能不能说得详细点呀?Top

4 楼Lucende(而已书生)回复于 2004-08-05 17:01:59 得分 0

详细点就要把图形学的书都搬过来了~~~  
   
  //   设置模形矩阵  
  void   SetModalMatrix(   void   )  
  {  
          glMatrixMode(   GL_MODELVIEW   );  
          glLoadIdentity(   );   //   单位化矩阵  
  //   这个函数是在OnIdle里被调用的,所以我们用下面的代码来实现物体的旋转  
  //   一个很容易理解的概念是,你绕着物体转和物体自己转在某些简单场景里的  
  //   的效果看起来是一样的,所以我们通过矩阵运算让眼睛点在一定高度做圆周  
  //   运动。知道圆的简化方程是:(sinα*   r)^2   +   (cosα*   r)^2   =   r^2,所以代码  
  //   很好理解。  
   
          static   float   fRadius   =   0;  
          fRadius   +=   0.01f;  
          if   (   fRadius   >   M_PI   *   2   )  
          {  
                  fRadius   =   0;  
          }  
          gluLookAt(   cosf(   fRadius   )   *   30,   sinf(   fRadius   )   *   30,   15.0,  
                  0.0,   0.0,   0.0,   //   向原点坐标看去  
                  0.0,   0.0,   1.0   );   //   设置眼睛(摄影机)的方向向量,该向量表示眼表向上  
  }  
   
  //   设置透视矩阵  
  void   SetProjMatrix(   WORD   wWidth,   WORD   wHeight   )  
  {  
          //   此函数将在WM_SIZE时被调用,所以应该设置一下glViewPort  
          glViewport(   0,   0,   wWidth,   wHeight   );  
          glMatrixMode(   GL_PROJECTION   );  
          glLoadIdentity(   );  
          //   这和照象机很类似,第一个参数设置镜头广角度,第二个参数是长宽比,后面是远近剪切。  
          gluPerspective(   45.0,   (double)wWidth   /   (double)wHeight,   1.0,   1000.0   );  
  }  
  Top

5 楼Lucende(而已书生)回复于 2004-08-05 17:03:01 得分 0

转自www.gameres.comTop

6 楼syy64(太平洋)回复于 2004-08-05 17:12:02 得分 0

用gluLookat函数,得根据你的坐标值设定;  
  http://community.csdn.net/Expert/topic/3143/3143497.xml?temp=.8713953Top

相关问题

  • 关于在OPENGL中用鼠标移动物体
  • 怎么在MFC中用OpenGL实现用鼠标拖动一个物体,以便从不同角度观察此物体?
  • 三维物体
  • 请教高手,如何使用OpenGL实现对不规则的三维物体进行包络?
  • 求救——OpenGL中关于射线法拾取物体表面点的问题(好难)
  • OpenGL中距离很远的时候观察物体出现一些面交跌在一起变花了,怎么解决?
  • 有没有什么方法使OpenGL同时在两个Panel里绘制不同物体,并且不互相干扰呢?
  • 在基于单文档的OpenGL框架中,怎样用鼠标实现物体的平移,旋转,缩放功能?
  • 物体阴影检测
  • DX创建较复杂的物体

关键词

  • 物体
  • 矩阵
  • 函数
  • fradius
  • wheight
  • wwidth
  • 大小
  • 显示
  • 模型
  • 设置

得分解答快速导航

  • 帖主:mmvr

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo