Полезная ссылки по данной теме: - [[Как измерить расстояние между двумя точками в пространстве]] - [[В чем отличие между теоремой Пифагора и Евклидовой дистанцией]] Евклидова дистанция (Euclidean Distance) — это [[Мера (Measure)|мера]] расстояния между двумя точками в [[Евклидово пространство (Euclidean space)|евклидовом пространстве]]. Эта [[Метрика (Metric)|метрика]] является наиболее простым и интуитивно понятным способом измерения расстояния и широко применяется в различных областях, таких как компьютерное зрение, машинное обучение, и, конечно, в математике и физике. Евклидова дистанция названа в честь древнегреческого математика Евклида, который жил в III веке до н. э. Евклид считается "отцом геометрии" за его работу "Элементы", которая служит основой для классической евклидовой геометрии. ### Как считать в 2D-пространстве Для двух точек в двумерном пространстве: $ A(x_1, y_1); B(x_2, y_2) $евклидова дистанция рассчитывается по формуле: $ d(A, B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} $ Пример на C#: ```csharp using System; using System.Numerics; public class Program { public static void Main() { Vector2 pointA = new Vector2(1.0f, 2.0f); Vector2 pointB = new Vector2(4.0f, 6.0f); float distance = EuclideanDistance2D(pointA, pointB); Console.WriteLine(quot;Distance: {distance}"); } public static float EuclideanDistance2D(Vector2 a, Vector2 b) { return MathF.Sqrt(MathF.Pow(b.X - a.X, 2) + MathF.Pow(b.Y - a.Y, 2)); } } ``` ### В 3D-пространстве Для двух точек в трехмерном пространстве: $ A(x_1, y_1, z_1); B(x_2, y_2, z_2) $дистанция рассчитывается по формуле: $ d(A, B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2} $ Пример на C#: ```csharp using System; using System.Numerics; public class Program { public static void Main() { Vector3 pointA = new Vector3(1.0f, 2.0f, 3.0f); Vector3 pointB = new Vector3(4.0f, 6.0f, 8.0f); float distance = EuclideanDistance3D(pointA, pointB); Console.WriteLine(quot;Distance: {distance}"); } public static float EuclideanDistance3D(Vector3 a, Vector3 b) { return MathF.Sqrt(MathF.Pow(b.X - a.X, 2) + MathF.Pow(b.Y - a.Y, 2) + MathF.Pow(b.Z - a.Z, 2)); } } ``` С использованием Unity: ```csharp using UnityEngine; public class DistanceExample : MonoBehaviour { void Start() { Vector3 pointA = new Vector3(1.0f, 2.0f, 3.0f); Vector3 pointB = new Vector3(4.0f, 6.0f, 8.0f); float distance = Vector3.Distance(pointA, pointB); Debug.Log(quot;Distance: {distance}"); } } ```