我不确定这是否可能,但基本上我有两个度数会改变图像的宽度/大小和斜度。在穿越 - 矩阵(<Matrix3DProjection/>
),它的工作原理是这样的:从XAML中的斜纹因素的斜度因子创建斜度AngleY
M11:cos(x) M12:sin(y)*sin(x) M11:0 M21:0 M22:cos(y) M23:0 M31:0 M32:0 M33:1
所以,如果我有X = 30°
和Y=40°
,我矩阵是:
M11:0.866 M12:0.321 M11:0 M21:0 M22:0.766 M23:0 M31:0 M32:0 M33:1
所以成为
我”什么D喜欢使用,而不是一个<TransformGroup/>
,但不能完全弄清楚<SkewTransform AngleY="???"/>
部分。该<ScaleTransform/>
似乎用M11和M22值以上ScaleX
和ScaleY
像<ScaleTransform ScaleX=".866" ScaleY=".766"/>
很容易。
但我不能从0.321一个M12
值计算出的所述<SkewTransform/>
部AngleY
。我知道,通过手动解决这个问题,AngleY="20.3"
的值似乎非常准确。但我无法弄清楚这背后的数学。
有谁知道吗?
呵呵,我对此有很高的期望。不幸的是,对于AngleY来说,22.76的值无法显示与“M12 = 0.321”相同的剪切。我也尝试过其他计算,也不适用于他们。它也可能与其他东西有关,如矩形的宽度/高度? – 2010-07-12 16:54:28
@Otaku:啊,我是在跟着规模做倾斜,但是你在做规模跟着倾斜。这应该只是在我的公式中反转X和Y,产生'atan(tan(30度)* sin(40度))= 20.3605749度。 – Quartermeister 2010-07-12 17:47:28
辉煌,就是这样!谢谢! – 2010-07-12 18:11:17