初学EGE图形库(五)---创建和理解视口

代码来自EGE官方例子:

#include <graphics.h>

int main()
{
	initgraph(640, 480);

	
	setviewport(200, 100, 330, 130, 1);
	//设置视口矩形区域为(200,100) - (330, 130)
	//最后一个参数为1表示出了这个区域的图形会被裁剪
	//后面所绘画的图形的原点坐标(0,0),会映射到(200,100)

	setcolor(EGERGB(0x0, 0xFF, 0x0));
	setfontbkcolor(RGB(0x80, 0x00, 0x80));
	setfont(18, 0, "宋体");
	outtextxy(0, 0, "Hello EGE Graphics");

	setbkmode(TRANSPARENT);
	outtextxy(0, 20, "Hello EGE Graphics");

	setviewport(0, 0, getwidth(), getheight(), 1);
	//重置视口为整个窗口
	outtextxy(0, 0, "Hello EGE Graphics");

	getch();

	closegraph();
	return 0;
}

什么是视口?


来自百度百科(视口)

看着头大吧

实际上简单说的就是在你使用初始化initgraph(x,y)的时候已经创建了一个x*y大小的窗口与视口,而这个视口就是我之前讲的坐标系。

有了坐标系以后才有我们基于坐标的操作。

那么这个设置视口就是在当前视口的某个矩形区域建立新的坐标系,并从现在起使用该坐标系



(就像这张图在初始化画幅的时候坐标系原点为640,480,在使用了创建视口后转换为原点为200,100的坐标系)

setviewport(200, 100, 330, 130, 1);

根据你选定的矩形区域如果第四个参数为1的话就是对超出部分进行裁剪,为0就是不裁剪。

以上的说法只是方便理解,并不严谨!!!!!


猜你喜欢

转载自blog.csdn.net/qq_18994119/article/details/80494416