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