3D変換
回転
3D回転は2D回転と同じではありません。3D回転では、回転軸とともに回転角を指定する必要があります。X、Y、Z軸を中心に3D回転を実行できます。それらは以下のようなマトリックス形式で表されます-
$$ R_ {x}(\ theta)= \ begin {bmatrix} 1&0&0&0 \\ 0&cos \ theta&−sin \ theta&0 \\ 0&sin \ theta&cos \ theta&0 \\ 0&0&0&1 \ \ \ end {bmatrix} R_ {y}(\ theta)= \ begin {bmatrix} cos \ theta&0&sin \ theta&0 \\ 0&1&0&0 \\ −sin \ theta&0&cos \ theta&0 \\ 0&0&0& 1 \\ \ end {bmatrix} R_ {z}(\ theta)= \ begin {bmatrix} cos \ theta&−sin \ theta&0&0 \\ sin \ theta&cos \ theta&0&0 \\ 0&0&1& 0 \\ 0&0&0&1 \ end {bmatrix} $$
次の図は、さまざまな軸を中心とした回転を説明しています-
スケーリング
スケーリング変換を使用して、オブジェクトのサイズを変更できます。スケーリングプロセスでは、オブジェクトの寸法を拡大または縮小します。スケーリングは、オブジェクトの元の座標にスケーリング係数を掛けて、目的の結果を得ることができます。次の図は、3Dスケーリングの効果を示しています-
3Dスケーリング操作では、3つの座標が使用されます。元の座標が(X、Y、Z)、倍率がそれぞれ$(S_ {X、} S_ {Y、} S_ {z})$、生成された座標が(X '、Y')であると仮定します。 、Z ')。これは、以下に示すように数学的に表すことができます-
$ S = \ begin {bmatrix} S_ {x}&0&0&0 \\ 0&S_ {y}&0&0 \\ 0&0&S_ {z}&0 \\ 0&0&0&1 \ end {bmatrix} $
P '= P∙S
$ [{X} '\:\:\:{Y}' \:\:\:{Z} '\:\:\:1] = [X \:\:\:Y \:\:\: Z \:\:\:1] \:\:\ begin {bmatrix} S_ {x}&0&0&0 \\ 0&S_ {y}&0&0 \\ 0&0&S_ {z}&0 \\ 0&0& 0&1 \ end {bmatrix} $
$ = [X.S_ {x} \:\:\:Y.S_ {y} \:\:\:Z.S_ {z} \:\:\:1] $
剪断
オブジェクトの形状を傾斜させる変換は、 shear transformation。2Dシアーと同様に、3DでX軸、Y軸、またはZ軸に沿ってオブジェクトをシアーすることができます。
上の図に示すように、座標Pがあります。それをせん断して新しい座標P 'を取得できます。これは、次のように3D行列形式で表すことができます。
$ Sh = \ begin {bmatrix} 1&sh_ {x} ^ {y}&sh_ {x} ^ {z}&0 \\ sh_ {y} ^ {x}&1&sh_ {y} ^ {z} &0 \\ sh_ {z} ^ {x}&sh_ {z} ^ {y}&1&0 \\ 0&0&0&1 \ end {bmatrix} $
P '= P∙Sh
$ X '= X + Sh_ {x} ^ {y} Y + Sh_ {x} ^ {z} Z $
$ Y '= Sh_ {y} ^ {x} X + Y + sh_ {y} ^ {z} Z $
$ Z '= Sh_ {z} ^ {x} X + Sh_ {z} ^ {y} Y + Z $
変換行列
変換行列は、変換の基本的なツールです。nxm次元の行列は、オブジェクトの座標で乗算されます。通常、変換には3 x3または4x4の行列が使用されます。たとえば、さまざまな操作について次の行列を考えてみます。
$ T = \ begin {bmatrix} 1&0&0&0 \\ 0&1&0&0 \\ 0&0&1&0 \\ t_ {x}&t_ {y}&t_ {z}&1 \\ \ end {bmatrix} $ | $ S = \ begin {bmatrix} S_ {x}&0&0&0 \\ 0&S_ {y}&0&0 \\ 0&0&S_ {z}&0 \\ 0&0&0&1 \ end {bmatrix} $ | $ Sh = \ begin {bmatrix} 1&sh_ {x} ^ {y}&sh_ {x} ^ {z}&0 \\ sh_ {y} ^ {x}&1&sh_ {y} ^ {z}& 0 \\ sh_ {z} ^ {x}&sh_ {z} ^ {y}&1&0 \\ 0&0&0&1 \ end {bmatrix} $ |
Translation Matrix | Scaling Matrix | Shear Matrix |
$ R_ {x}(\ theta)= \ begin {bmatrix} 1&0&0&0 \\ 0&cos \ theta&-sin \ theta&0 \\ 0&sin \ theta&cos \ theta&0 \\ 0&0&0&1 \\ \ end {bmatrix} $ | $ R_ {y}(\ theta)= \ begin {bmatrix} cos \ theta&0&sin \ theta&0 \\ 0&1&0&0 \\ -sin \ theta&0&cos \ theta&0 \\ 0&0&0&1 \\\ end {bmatrix} $ | $ R_ {z}(\ theta)= \ begin {bmatrix} cos \ theta&-sin \ theta&0&0 \\ sin \ theta&cos \ theta&0&0 \\ 0&0&1&0 \\ 0&0&0&1 \ end {bmatrix} $ |
Rotation Matrix |