代码来自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就是不裁剪。
以上的说法只是方便理解,并不严谨!!!!!