Scaling
ほとんどの CAD および描画アプリケーションは、ユーザーが作成した出力をスケーリングする機能を提供します。 スケーリング (またはズーム) 機能を含むアプリケーションでは 、SetWorldTransform 関数を呼び出して、適切なワールド空間をページ空間変換に設定します。 この関数は、適切な値を含む XFORM 構造体へのポインターを受け取ります。 XFORM の eM11 メンバーと eM22 メンバーは、水平方向と垂直方向のスケーリング コンポーネントをそれぞれ指定します。
スケーリングが行われると、オブジェクトを構成する垂直線と水平線 (またはベクトル) が、x 軸または y 軸に対してストレッチまたは圧縮されます。 次の図は、ワールド座標空間からページ座標空間にコピーされた場合に、垂直方向に元の高さの 2 倍にスケーリングされた 20 x 20 単位の四角形を示しています。
前の図では、元の四角形の側面を定義する垂直線は 20 単位を、拡大縮小された四角形の辺を定義する垂直線は 40 単位を測定します。
垂直方向のスケーリングは、次のアルゴリズムで表すことができます。
y' = y * Dy
ここで、y' は新しい長さ、y は元の長さ、Dy は垂直スケーリング係数です。
水平スケーリングは、次のアルゴリズムで表すことができます。
x' = x * Dx
ここで、x' は新しい長さ、x は元の長さ、Dx は水平方向の拡大縮小率です。
垂直方向と水平方向のスケーリング変換は、2 対 2 の行列を使用して 1 つの操作に組み合わせることができます。
|x' y'| = |Dx 0| * |x y|
|0 Dy|
スケーリング変換を生成した 2 対 2 のマトリックスには、次の値が含まれています。
|1 0|
|0 2|