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|