将笛卡尔坐标转换为WPF中的屏幕坐标的最佳实践

时间:2013-12-04 13:39:40

标签: c# wpf drawing

我正在向wpf画布绘制一堆点。这些点有笛卡尔坐标。所以我写了一个方法,用附加的方法将它们转换为屏幕坐标。

它正在工作,但我想知道这是最佳实践还是有本地方法来做到这一点?

 private Point TransformPoint(Point pBase)
 {
      // just some debug values
      int dCanvasWidth = 400;
      int dCanvasHeight = 400;
      double dMaxXCartesian = 1000;
      double dMaxYCartesian = 1000;
      // transformation
      double dScreenX = pBase.X / dMaxXCartesian * dCanvasWidth;
      double dScreenY = dCanvasHeight - pBase.Y / dMaxYCartesian * dCanvasHeight;
      return new Point(dScreenX, dScreenY);
 }

1 个答案:

答案 0 :(得分:0)

当然有。您设置转换矩阵一次,然后简单地使用整个点数组调用其Transform()函数:

matrix.Transform(point[]);