c# graphics.RotateTransform vs. graphics.Transform.Rotate

问题描述

我想弄清楚这里发生了什么:

一个名为 System.Drawing.drawing2d.Graphicsg 对象。

g.Transform 具有以下值:

[0] = 1
[1] = 0
[2] = 0
[3] = -1
[4] = 0
[5] = 1122.66663

什么时候做

int minAngle = 0;
g.Transform.Rotate(360 - minAngle);

我为 g.Transform 属性获得了相同的元素:

[0] = 1
[1] = 0
[2] = 0
[3] = -1
[4] = 0
[5] = 1122.66663

但是当我这样做时:

int minAngle = 0;
g.RotateTransform(360 - minAngle);

我为 g.Transform 属性获取了这些元素:

[0] = 0.99999994
[1] = 3.019916E-07
[2] = 3.019916E-07
[3] = -0.99999994
[4] = 0
[5] = 1122.66663

为什么这两种方法之间有如此大的舍入差异,它们似乎都在做同样的事情:修改世界变换?

除了浮点舍入“问题”之外,使用rotateTransfrom 和transform.rotate 有什么区别吗?

(.NET 框架 4.8)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)