译本

某些应用程序转换在工作区中绘制的(或 Shift)对象。 通过调用 SetWorldTransform 函数将适当的世界空间设置为页空间转换。 SetWorldTransform 函数接收指向包含相应值的 XFORM 结构的指针。 XFORM 的 eDx 和 eDy 成员分别指定水平和垂直转换组件。

转换 发生时,对象中的每个点都会按指定量垂直、水平或两者移动。 下图显示了一个 20 到 20 个单位的矩形,从世界坐标空间复制到页面坐标空间时,该矩形被 10 个单位转换为右侧。

图显示了世界空间中一个位置的矩形,在页面空间中的不同位置

在上图中,矩形中每个点的 x 坐标大于原始 x 坐标的 10 个单位。

水平转换可以由以下算法表示。

x' = x + Dx 

其中 x' 是新的 x 坐标,x 是原始 x 坐标,Dx 是水平距离移动。

垂直转换可以由以下算法表示。

y' = y + Dy 

其中 y' 是新的 y 坐标,y 是原始 y 坐标,Dy 是垂直距离移动。

水平转换和垂直转换可以使用 3 到 3 矩阵组合成单个作。

                      |1   0   0| 
|x' y' 1| = |x y 1| * |0   1   0| 
                      |Dx  Dy  1| 

(矩阵乘法规则:一个矩阵中的行数必须等于另一个矩阵中的列数。矩阵中的整数 1 |x y 1|是已添加以满足此要求的占位符。

生成图示转换转换的 3 by-3 矩阵包含以下值。

|1  0  0| 
|0  1  0| 
|10 0  1|