我需要在一条线上使用 RotateTransform 方法找到旋转后线的新坐标。
例如,在这一行之后:
line.RenderTransform = new RotateTransform(25, 0, 0);
line.X1
其他三个属性不会改变。我找到了一些针对矩形等形状的解决方案,但它不适用于线条。 Line 有不同的处理方式。
EDIT:感谢您的帮助H.B.第二种方法正是我一直在寻找的。
解决方案:
Line line = new Line();
line.X1 = 10;
line.Y1 = 10;
line.X2 = 20;
line.Y2 = 30;
RotateTransform rotation = new RotateTransform();
Point p1 = rotation.Transform(new Point(line.X1, line.Y1));
Point p2 = rotation.Transform(new Point(line.X2, line.Y2));
line.X1 = p1.X;
line.Y1 = p1.Y;
line.X2 = p2.X;
line.Y2 = p2.Y;
此代码旋转线并为该线的附加属性设置新的坐标值。
You can 转换 http://msdn.microsoft.com/en-us/library/system.windows.media.generaltransform.transform.aspx自己的要点:
var transform = new RotateTransform(25, 0, 0);
var newP1 = transform.Transform(new Point(line.X1,line.Y1));
//...
如果您想要永久变换,您可以变换起点和终点并将新值分配给相应的属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)