QT坐标个人理解
绘图时,图像绘制在逻辑坐标系上,再通过窗口——视口映射,世界转换将逻辑坐标系映射到物理坐标系上。进而把绘制在逻辑坐标系上的图像映射到物理坐标系上。
转换公式为(一般不需要自己计算):
(原x1-原x0)*新宽度/旧宽度-新x0=新x1(正逆变换都适用)(原表示将要变换的坐标,新表示变换之后的坐标)
void QPainter::setWindow ( int x, int y, int width, int height)
void QPainter::setViewport ( int x, int y, int width, intheight )
(1)
translate( )
平移。
(2)
scale( )
拉伸,缩放。
(3)
rotate( )
旋转。
(4)
shear( )
扭曲。
例子一:
易知逻辑坐标=物理坐标
例子二:
setFixedSize (300,300);
painter.setWindow (20,20,300,300);
painter.drawRect(20,20,50,50);
例子三:
setFixedSize (300,300);
painter.setWindow (0,0,150,150);
painter.drawRect(20,20,50,50);
例子四:
setFixedSize (300,300);
painter.setViewport (0,0,150,150);
painter.drawRect(20,20,50,50)