Es klingt wie Sie wirklich einen Vektor wollen. Es hat Magnitude und Richtung. Die Größe ist der Abstand zwischen den beiden Punkten. Die Richtung wird durch Zeichnen des Vektors vom Startpunkt bis zum Endpunkt bestimmt. Die Wahl ist willkürlich.
Ein Vektor von (0,0) bis (5,0) hat die gleiche Länge wie einer von (5,0) bis (0,0) gezeichnet: beide sind Länge 5. Aber eins zeigt in positiver x-Richtung ; die anderen Punkte in der negativen x-Richtung. Die Vektoridee ist allgemeiner.
In zweidimensionalen rechtwinkligen Koordinaten haben Sie die Punkte p1 = (p1x, p1y) und p2 = (p2x, p2y).
Der Vektor von P1 zu P2 ist:
p = (p2x-p1x)*i + (p2y-p1y)*j
wobei i = x-Einheit Vektor und j = y-Vektor-Einheit.
Die Größe von p ist
pmag = sqrt((p2x-p1x)^2 + (p2y-p1y)^2)
der Einheitsvektor von P1 bis P2 kann durch Teilen des Vektors p durch seine Größe zu haben ist:
wie p
p(unit) = (p2x-p1x)*i/pmag + (p2y-p1y)*j/pmag
punit Punkte in der gleichen Richtung , aber es hat Magnitude 1 (daher der Name "Einheitsvektor").
Ich stimme zu, diese Frage als off-topic zu schließen, weil es um Mathe geht –
Also, nur die Entfernung mit dieser Formel, und dann negieren sie "wenn p2 Werte kleiner als p1 sind.", Was auch immer das bedeutet Sie. – Blorgbeard
Was meinen Sie mit "wenn die Werte von p2 kleiner als die von s1 sind?" Beide Werte? Nur einer von ihnen? Wenn dies etwas ist, das Sie getrennt von der Entfernungsberechnung überprüfen können (für die Sie übrigens 'Math.hypot' verwenden sollten), dann tun Sie dies. –