OpenGL中gluOrtho2D、glViewport、glutInitWindowSize区别与关系

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/HouraisanF/article/details/83444183

窗口与显示主要与三个量有关:世界坐标窗口大小视口大小。围绕这些量共有4个函数:


 
 
 
  1. glutInitWindowPosition( int x, int y) //定义窗口位置
  2. glViewport( int x, int y, GlLsizei w, Glsizei h) //定义视口大小
  3. glutInitWindowSize( int width, int height) //定义窗口大小
  4. gluOrtho2D(x_mix, x_max, y_mix, y_max) //截取图像大小

世界坐标:

固有坐标系,不可改变,没有偏差。时世界坐标系(世界坐标空间)的坐标。

      gluOrtho2D(x_mix, x_max, y_mix, y_max)

用于截取世界坐标系相应区域。在世界坐标系中以从(x_mix, x_max)到(y_mix, y_max)的直线为对角线的矩形部分截取图像,该截图可以被用于显示。

 

窗口大小:

      glutInitWindowSize(int width, int height)

width:宽、横;

height:高、竖;

部分电脑屏幕有1920*1080个像素(比如说我的),该语句用于创建一个width*height个像素的窗口

 

以上两个值之间无关。

 

视口大小:

截图不会适配窗口,不能在窗口中直接显示,而是需要在视口中拉伸并显示。视口则是截图在窗口中显示的区域,即,图像只在视口中显示。视口用于把截图和窗口联系起来。

      glViewport(int x, int y, GlLsizei w, Glsizei h)

可以定义截取的图像在窗口的哪一部分显示。

(x, y)是视口左下角在窗口里位置的坐标;(0, 0)是窗口左下角;w、h是视口的宽和高。截图就在这一部分显示。

“视口”在有些地方也叫“视区”。

 

另外:

窗口在屏幕中的位置由

      glutInitWindowPosition(int x, int y)

确定,

(x, y)是窗口左上角的位置。

 

以下是图例:


 
 
 
  1. void display()
  2. {
  3. ……
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值