我有两个点 (x1,y1) 和 (x2,y2)。我想知道这些点之间的距离是否在 5 米以内。
最佳答案
如果您使用 System.Windows.Point
数据类型来表示一个点,你可以使用
// assuming p1 and p2 data types
Point p1, p2;
// distanc can be calculated as follows
double distance = Point.Subtract(p2, p1).Length;
2017-01-08 更新:
- 添加对 Microsoft 文档的引用
Point.Subtract
的结果是 System.Windows.Vector如果您只需要比较距离,它还有属性LengthSquared
可以节省一次sqrt
计算。- 在您的项目中可能需要添加对
WindowsBase
程序集的引用 - 您也可以使用运算符
使用 LengthSquared
和运算符的示例
// assuming p1 and p2 data types
Point p1, p2;
// distanc can be calculated as follows
double distanceSquared = (p2 - p1).LengthSquared;
2021-11-15 更新:
不幸的是,System.Windows.Point
和 WindowsBase
仅在 .Net Framework
中可用。它不是 .NET
、.NET standard
、.NET core
的一部分。
System.Drawing.Point
和 System.Drawing.PointF
没有任何可用的方法和运算符,它们只是容器。
有趣的是 System.Numerics.Vector2
,它可能是 System.Windows.Point
的最佳替代品。它具有类似的 API,并且在所有 .NET
漏洞中都可用。但是,语义很奇怪 - 使用 Vector 表示点。
关于c# - 计算两点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11555355/