Berechnung der Entfernung zwischen 2 Punkten

7

Ich habe zwei Punkte (x1, y1) und (x2, y2). Ich möchte wissen, ob die Punkte innerhalb von 5 Metern voneinander sind.

    
user1307376 19.07.2012, 06:49
quelle

6 Antworten

21

messen Sie die Quadratdistanz von einem Punkt zum anderen:

%Vor%

Dabei ist d die Entfernung, (x1, y1) sind die Koordinaten des Basispunkts und (x2, y2) die Koordinaten des zu überprüfenden Punktes.

oder wenn Sie bevorzugen:

%Vor%

Es wurde bemerkt, dass der bevorzugte Pow aus Gründen der Geschwindigkeit überhaupt nicht anruft, und der zweite, wahrscheinlich langsamer, ruft auch nicht Math.Sqrt auf, immer aus Leistungsgründen. Vielleicht sind solche Optimierungen in Ihrem Fall verfrüht, aber sie sind nützlich, wenn dieser Code oft ausgeführt werden muss.

Natürlich sprechen Sie in Metern und ich vermute, dass Punktkoordinaten auch in Metern ausgedrückt werden.

    
Felice Pollano 19.07.2012, 06:57
quelle
21

Wenn Sie System.Windows.Point Datentyp um einen Punkt darzustellen, können Sie

verwenden %Vor%

Update 2017-01-08:

  • Verweis zur Microsoft-Dokumentation hinzufügen
  • Ergebnis von Point.Subtract ist System.Windows. Vektor und es hat auch die Eigenschaft LengthSquared , um eine sqrt Berechnung zu speichern, wenn Sie nur die Distanz vergleichen müssen.
  • In Ihrem Projekt
  • kann der Verweis auf WindowsBase assembly erforderlich sein
  • Sie können auch Operatoren
  • verwenden

Beispiel mit LengthSquared und Operatoren

%Vor%     
j123b567 28.06.2016 21:22
quelle
4

Hier sind meine 2 Cent:

%Vor%

x1, y1 ist die erste Koordinate und x2, y2 die zweite. Die letzte Zeile ist die Quadratwurzel, die auf 3 Dezimalstellen gerundet ist.

    
DarkPh03n1X 10.11.2015 03:52
quelle
4

Wenn Sie mit Punkten meinen (X1, Y1) und (X2, Y2) dann:

%Vor%     
Roee Gavirel 19.07.2012 06:51
quelle
4

So etwas in c # würde wahrscheinlich den Job machen. Stelle sicher, dass du konsistente Einheiten passierst (Wenn ein Punkt in Metern ist, vergewissere dich, dass der zweite auch in Metern ist)

%Vor%

Genannt wie folgt:

%Vor%     
Jack Fairfield 03.10.2016 20:46
quelle
-3

der Algorithmus: ((x1 - x2) ^ 2 + (y1 - y2) ^ 2) & lt; 25

    
user1530197 19.07.2012 07:00
quelle

Tags und Links