PDF学习九:坐标转换-行走的坐标系

本文转自:https://blog.csdn.net/u012632138/article/details/81381396

说明:

一个变换矩阵指定了2个坐标空间之间的关系。通过修改变换矩阵,对象可以缩放、旋转、平移等等。

PDF reference1.7.pdf 4.2.2

变换矩阵:

由6个数字来定义。[a b c d e f]

  1. 平移(translate):[1 0 0 1 tx ty], tx和ty分别是坐标原点在水平和垂直方向的距离。
  2. 缩放(scaling):[sx 0 0 sy 0 0]。对坐标进行了比例设定,这样新坐标系统里水平垂直尺寸的1个单元,分别跟先前坐标系统里的SX和SY单元的SIZE是一样大小的。
  3. 旋转(Rotating): [cosa sina -sina cosa 0 0 ],以一个逆时针的角度旋转。
  4. 切变(Skewing):[ 1 tana tanb 1 0 0 ],根据一个角度来切变x轴和y轴。

PDF学习九:坐标转换-行走的坐标系

组合变换:

一般是先Translate 平移,然后Rotate 旋转,再进行Scale or skew 缩放或切变。

PDF学习九:坐标转换-行走的坐标系

 

计算:

计算a b c d e f
条件:win: 72dpi
过程: 取特殊点计算.
根据:

PDF学习九:坐标转换-行走的坐标系
Pdf->win
Pdf: (0,0); (0,h); (w,h)
Win: (0,h); (0,0);(w,0)
0 = a*0+ c*0 + e  得出 e = 0
h = b*0 + d*0 + f  得出  f = h
0 = a*0 + c*h 得出  c = 0
0 = b*0 + d*h +h 得出  d = -1
W = a*w 得出  a = 1
0 = b*w 得出 b = 0
前面计算的结果可直接用于下一个等式计算
所以pdf->win 的matrix 为[1 0 0 -1 0 h]

 

作业

1.计算a b c d e f
条件:win: 72dpi 顺时针旋转90°
过程: 取特殊点计算。
计算pdf->win 的matrix 为[a b c d e f], 要写出计算过程。
2.写出一个PDF文件包含5个矩形,要求如下
1)在x=100, y=600的位置画一个宽为40, 高为50的矩形。
2)将1)中矩形进行平移和Scaling变换,,得到一个宽为240, 高为50,位置x=180,y=600
3) 在x=100, y=500的位置画一个宽为40, 高为50, 逆时针旋转30°的矩形 
4)选择适当的位置,画出X轴切变30°的矩形
5)选择适当的位置,画出Y轴切变30°的矩形
统一使用s显示操作符。