【问题标题】:Getting new position of a line after rotation旋转后获取线的新位置
【发布时间】:2011-09-08 15:54:42
【问题描述】:

我需要在一条线上使用 RotateTransform 方法在旋转后找出线的新坐标。
例如,在这一行之后:

line.RenderTransform = new RotateTransform(25, 0, 0);

line.X1 和其他三个属性不会改变。我为矩形等形状找到了一些解决方案,但它不适用于线条。 Line 有不同的处理方式。

编辑:感谢您的帮助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;

此代码旋转线并将新的坐标值设置为该线的附加属性。

【问题讨论】:

    标签: wpf rotation line coordinates transform


    【解决方案1】:

    您可以自行transform点数:

    var transform = new RotateTransform(25, 0, 0);
    var newP1 = transform.Transform(new Point(line.X1,line.Y1));
    //...
    

    如果您想要永久转换,您可以转换起点和终点并将新值分配给相应的属性。

    【讨论】:

      猜你喜欢
      • 2011-12-09
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多