我正在向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);
}
答案 0 :(得分:0)
当然有。您设置转换矩阵一次,然后简单地使用整个点数组调用其Transform()函数:
matrix.Transform(point[]);