为什么没有 setviewport() 函数?用什么替代?
2011-3-1 ~ 2018-12-23
(0)
由于 windows 下的 viewport 概念和过去有了很大的区别,为了避免大家混淆,EasyX 从 2011-2-24 起取消了这个函数。
下面解释一下怎样用其他函数替代 setviewport 的功能。
先说说过去的 setviewport() 的功能:
- 设置矩形区域
- 将矩形区域左上角设置为原点坐标
- 可以选择是否裁剪
对于设置裁剪,可以先定义一个区域,然后将该区域设置为裁剪区。区域的概念不仅局限于矩形,在 Windows GDI 函数中有很多定义区域的语句。下面代码定义一个矩形的区域,并设置为裁剪区:
HRGN rgn = CreateRectRgn(100, 100, 200, 200); // 定义矩形区域
setcliprgn(rgn); // 设置区域 rgn 为裁剪区
DeleteObject(rgn); // 不再使用 rgn,清理 rgn 占用的系统资源
取消之前设置的裁剪区,可以用:
setcliprgn(NULL);
可以用 setorigin() 实现设置原点。例如设置 (100, 100) 为新的原点坐标,可以用代码:
setorigin(100, 100);
可以用 setaspectratio() 设置 x 和 y 轴的方向。例如,设置 y 坐标轴的方向向上为正:
setaspectratio(1, -1);
通过这几条语句的组合,可以实现远远比 setviewport() 强大并且实用的功能。各函数的详细用法,请参见帮助文件。
添加评论
取消回复