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