• 4852阅读
  • 0回复

[讨论]QMatrix坐标转换 [复制链接]

上一主题 下一主题
离线chen12nan
 

只看楼主 倒序阅读 楼主  发表于: 2012-12-28
QMatrix的内部使用一个3x3的矩阵:

m11 m12 0 m21 m22 0 dx dy 1
dx与dy定义了水平与垂直移动,m11与m22定义了水平与垂直缩放(scaling),m12与m21定义了垂直与水平扭曲(shearing),想象您是坐在宇宙飞船中,在宇宙飞船从左上原点开到某个点之后,(x, y)是以您为中心所看到的坐标,但实际上宇宙飞船相对于左上角为原点的坐标为(x',y'),QMatrix的矩阵可以如以下的公式,将(x, y)转换为(x', y'):
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
当您使用QPainter要进行绘图时,可以您为中心所看到的坐标系统(x, y),使用QPainter的相关API来进行相关图形的绘制,这就像您在宇宙飞船中画图一样的方便,若有设定QMatrix,则会自动转换为计算机绘图时所看到的坐标系统(x', y'),如此就不用亲自进行一些复杂的转换动作,进行绘图时也较为直觉。

请问如何实现  用户坐标、文档坐标、视图坐标之间的转换?
http://blog.csdn.net/jiong_1988/article/details/7910996
学习QT...痛苦并快乐着的.keep moving。
快速回复
限100 字节
 
上一个 下一个