窗口与显示主要与三个量有关:世界坐标,窗口大小和视口大小。围绕这些量共有4个函数:
-
glutInitWindowPosition(
int x,
int y)
//定义窗口位置
-
-
glViewport(
int x,
int y, GlLsizei w, Glsizei h)
//定义视口大小
-
-
glutInitWindowSize(
int width,
int height)
//定义窗口大小
-
-
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)是窗口左上角的位置。
以下是图例:
-
void display()
-
{
-
……
-