1

次のようなアフィン2D変換行列が与えられます。

[a  b  tx]
[c  d  ty]
[0  0  1 ]
  • 原点を中心に時計回りに回転する場合は、aによって変換されcos (θ)bによって変換されます。sin (θ)

  • scaleFactor sxのscaleXの場合、aは次のように変換されます。sx

  • x軸に平行なせん断の場合、x' = x + ky bは次のように変換されます。k


私の例でaは、は回転によって2回変換され、scale-xbは回転によって1回、せん断によって1回、2回変換されました。

回転はもはやただではありませんarcsin(b)

ScaleXはもはやただではありません1 / a

ShearXはもはやただではありませんx - ky


その行列から、、、rotationおよびshearXの値を取得するにはどうすればよいですか?scaleX

4

1 に答える 1

5

したがって、回転行列 (完全) は次のようになります (退屈な部分は省きます)

R=
a=cos(θ)  c=sin(θ)
b=-sin(θ) d=cos(θ)

一方、スケールとせん断マトリックスは次のようになります (繰り返しますが、退屈な部分は除外します)。

S=
a=s  b=k 
c=0  d=1

FIRST 回転 (R) を適用すると、THEN スケールとせん断 (S) は行列を乗算するだけになり、結果の行列が得られます。

S times R
a=s cos(θ) - k sin(θ)   b=s sin(θ)+k cos(θ)
c=-sin(theta)    d=cos(theta)

そこから θ、s、k を取得したい場合は、θ =arcsin(-c) を決定できます。あなたは sin(θ) と cos(θ) を知っているので、2 つの線形方程式 (a=s cos(θ) - k sin(θ) b=s sin(θ)+k cos(θ)) を 2 つの未知数で解くことができます。 s と k を見つけます。

于 2012-06-17T13:42:13.137 に答える