我需要在一条线上使用RotateTransform方法找出旋转后的线的新坐标 例如,在此行之后:
line.RenderTransform = new RotateTransform(25, 0, 0);
line.X1
和其他三个属性不会改变。我找到了一些像矩形这样的形状的解决方案,但它不适用于线条。线有不同的方式如何对待它。
编辑:感谢您的帮助 H.B。第二种方式正是我一直在寻找的。 p>
解决方案:
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;
此代码旋转直线并将新坐标值设置为此线的附加属性。
答案 0 :(得分:6)
你可以自己transform点:
var transform = new RotateTransform(25, 0, 0);
var newP1 = transform.Transform(new Point(line.X1,line.Y1));
//...
如果要进行永久转换,可以转换起点和终点,并将新值分配给相应的属性。