📜  c# 获取距离 - C# (1)

📅  最后修改于: 2023-12-03 14:59:43.544000             🧑  作者: Mango

C#获取距离

在C#中获取两点之间的距离有多种方法,本文将介绍其中的几种常见方法。

方法一:使用Math.Sqrt()函数

该方法最常见也最简单,使用公式计算两点之间的距离,代码如下:

public static double DistanceBetweenTwoPoints(double x1, double y1, double x2, double y2)
{
    double distance;
    distance = Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2));
    return distance;
}

上述代码中的Math.Sqrt()函数是计算平方根的函数,Math.Pow()函数是计算幂次的函数。

如果要计算三维空间中两点之间的距离,代码如下:

public static double DistanceBetweenTwoPoints(double x1, double y1, double z1, double x2, double y2, double z2)
{
    double distance;
    distance = Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2) + Math.Pow((z2 - z1), 2));
    return distance;
}
方法二:使用Vector2.Distance()和Vector3.Distance()函数

Vector2和Vector3是Unity中常用的向量类型,它们提供了获取向量之间距离的函数,代码如下:

using UnityEngine;

public static float DistanceBetweenTwoPoints(Vector2 p1, Vector2 p2)
{
    return Vector2.Distance(p1, p2);
}

public static float DistanceBetweenTwoPoints(Vector3 p1, Vector3 p2)
{
    return Vector3.Distance(p1, p2);
}
方法三:使用GeoCoordinate.GetDistanceTo()函数

该方法用于计算地球表面两个点之间的距离,需要引用System.Device.Location命名空间,代码如下:

using System.Device.Location;

public static double DistanceBetweenTwoPoints(double lat1, double lon1, double lat2, double lon2)
{
    GeoCoordinate p1 = new GeoCoordinate(lat1, lon1);
    GeoCoordinate p2 = new GeoCoordinate(lat2, lon2);
    return p1.GetDistanceTo(p2);
}

需要注意的是,该方法所计算的距离是两个点之间的直线距离,并不是实际路径上的距离。如果要计算实际路径上的距离,需要引入地图API进行路线规划。

结语

以上就是C#中获取距离的几种常见方法,根据不同的需求选择适合自己的方法即可。