Algorithmus zur Berechnung eines Abstandes zwischen 2 3-dimensionalen Punkten?

7

Ich habe zwei 3D-Punkte.
Beispiel:

%Vor%

Irgendjemand eine Idee für einen Algorithmus, um den Abstand in float zwischen den Punkten zu berechnen?

    
Headpuster 18.01.2012, 17:37
quelle

5 Antworten

21

Der euklidische Abstand zwischen zwei 3D-Punkten ist:

%Vor%

Und in N Dimensionen (ungetestet und anfällig für Überlauf):

%Vor%

Bearbeiten: Ich bevorzuge die% desc_de% Lösung, die von dasblinkenlight veröffentlicht wird!

    
Ron Warholic 18.01.2012, 17:40
quelle
16

In C # mit LINQ können Sie dies tun:

%Vor%

Dies summiert quadrierte paarweise Differenzen zwischen einzelnen Koordinaten und gibt die arithmetische Quadratwurzel der Summe zurück.

BEARBEITEN: Diese Lösung funktioniert für eine beliebige Anzahl von Dimensionen größer oder gleich eins (Danke an Austin Salonen für das Aufzeigen).

    
dasblinkenlight 18.01.2012 17:44
quelle
10

float distance=(float) Math.Sqrt(Math.Pow(point1[0]-point2[0],2) + Math.Pow(point1[1]-point2[1],2) + Math.Pow(point1[2]-point2[2],2))

    
Farid Movsumov 18.01.2012 17:47
quelle
4

Wie 2D, aber mit einer weiteren Koordinate:

%Vor%

Offensichtlich nicht in C # geschrieben, aber Sie bekommen die Idee.

    
InBetween 18.01.2012 17:40
quelle
2

Wenn Sie zwei Punkte haben:
P1 = (x1, y1, z1)
P2 = (x2, y2, z2)
Abstand ist SQRT((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2)

So könnten Sie

verwenden %Vor%     
Marco 18.01.2012 17:41
quelle

Tags und Links