Я не уверен, возможно ли это, но в основном у меня есть два градуса, которые изменят ширину / размер и перекос изображения.В матрице преобразования (<Matrix3DProjection/>
) это работает так:
M11:<b>cos(x)</b> M12:<b>sin(y)*sin(x)</b> M11:0
M21:0 M22:<b>cos(y)</b> M23:0
M31:0 M32:0 M33:1
Так что, если у меня есть X = 30°
и Y=40°
, моя матрица:
M11:<b>0.866</b> M12:<b>0.321</b> M11:0
M21:0 M22:<b>0.766</b> M23:0
M31:0 M32:0 M33:1
Так становится
Вместо этого я хотел бы использовать <TransformGroup/>
, но не могу понять часть <SkewTransform AngleY="???"/>
.<ScaleTransform/>
кажется достаточно простым, используя значения M11 и M22 , указанные выше в ScaleX
и ScaleY
, например <ScaleTransform ScaleX=".866" ScaleY=".766"/>
.
Но я не могувычислите AngleY
часть <SkewTransform/>
из значения M12
0.321 .Я знаю, что при ручном изучении этого значения значение AngleY="20.3"
кажется очень точным.Но я не могу понять математику за этим.
Кто-нибудь знает?