手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

如何理解Qt中的坐标体系

时间:2024-10-15 02:31:06

1、从上图,我们可以看到,左边图形的原始大小,size即宽和高,对应它的矩阵模型,对使用的渲染工具像pen的绘鲽判砦吟制线条的粗细大小是进行忽略的。在混合绘图的时候,像素的渲染是由QPainter::Antialiasing这一枚举渲染配置项决定的。RenderHint枚举变量描述了QPainter的渲染选项,这些选项也许有的引擎是不支持的。QPainter::Antialiasing这个枚举项表示引擎会平滑图形的原始边缘,例如使用不同的彩色亮度平滑边缘。

如何理解Qt中的坐标体系

2、默认情况下,我们可以从上面左图看到,当使用1像素宽的pen去做图形渲染的时候,图形的渲染是从起点开始到右边数学意义上的点的下方。当使用偶数像素宽的pen去渲染的时候,像素是会被对称地渲染在数学意义上的点的周围的。当使用奇数像素宽的pen去渲染的时候,空余的像素会作为一个像素渲染在数学意义点的右下方。结合实际例子看一下:

如何理解Qt中的坐标体系

3、上图1是一个矩形的逻辑表示,图2是我们用1像素宽的pen渲染绘制的,也就是奇数像素情形,像素是在数学点的右下方进行渲染的。图3是两像素宽的pen绘制的,图4是三像素宽的pen绘制的,原理上和上面介绍的一样,都是在右下方进行渲染,奇数的空余像素在数学点的右下方以1像素进行填充。如果是抗锯齿绘图,即设置QPainter的anti-aliasing渲染选项,这时候,像素会被对称的在数学点的两边进行渲染填充。

如何理解Qt中的坐标体系

4、坐标变换:通常,QPainter在相关设备自己的坐标系里绘图,但也完全支持仿射坐标变换。我们可以通过QPainter::scale()函数缩放坐标系,通过rotate()函数旋转坐标系,通过translate()函数翻转坐标系通过shear()函数,我们可以扭转坐标系,通过worldTransform()函数我们可以获取QPainter的变换矩阵QTransform,这个里面的矩阵参数是可以查看的。

如何理解Qt中的坐标体系
© 手抄报圈