C#中的Point2D.Double

时间:2015-03-13 23:47:23

标签: java c#

在Java中,我有以下代码片段:

public static double absoluteBearing(Point2D.Double source, Point2D.Double target) {
    return Math.atan2(target.x - source.x, target.y - source.y);
}

我想知道如何使用" Point2D.Double"在C#。

2 个答案:

答案 0 :(得分:2)

在Windows窗体中,您可以使用PointF结构。 (注意,这在内部使用float顾名思义,但通常足够精确。)

在WPF中,您可以使用Point结构。

假设您使用的是WinForms(因为它与Java中的Swing最相似),您的代码将转换为:

public static double absoluteBearing(PointF source, PointF target) {
    return Math.Atan2(target.Y - source.Y, target.X - source.X);
}

请注意,X和Y在C#的Atan2中被反转。

答案 1 :(得分:0)

如果您使用WPF,那么您可以获得双精度 Point,它与原始Java Point2D.Double更加匹配。

public static double absoluteBearing(Point source, Point target) 
{
    return Math.atan2(target.X - source.X, target.Y - source.Y);
}

这并不一定意味着您的应用必须转换为WPF。

Point structure