Ich kann viele Formeln finden, um den Abstand zwischen zwei schrägen Linien zu bestimmen. Ich möchte den Abstand zwischen zwei Liniensegmenten berechnen in eine Dimension .
Das ist mit einer Reihe von IF-Anweisungen leicht zu bewerkstelligen. Aber ich habe mich gefragt, ob es eine effizientere mathematische Formel gibt.
Z.B. 1:
----L1x1-------L2x1-------L1x2------L2x2----------------------------
L1 = Linienabschnitt 1, L2 = Linienabschnitt 2; der Abstand ist hier 0, weil sich die Linien schneiden
Z.B. 2:
----L1x1-------L1x2-------L2x1------L2x2----------------------------
der Abstand ist hier L2x1 - L1x2
EDIT :
Die einzige Annahme ist, dass die Liniensegmente geordnet sind, d. h. x2 ist immer > x1.
Linienabschnitt 1 kann links, rechts, gleich usw. von Linienabschnitt 2 liegen. Der Algorithmus muss dies berücksichtigen.
EDIT 2:
Ich muss dies in T-SQL (SQL Server 2008) implementieren. Ich brauche nur die Logik... Ich kann die T-SQL schreiben.
EDIT 3:
Wenn ein Liniensegment ein Liniensegment der anderen Linie ist, ist der Abstand 0.
----L1x1-------L2x1-------L2x2------L1x2----------------------------
Der Linienabschnitt 2 ist ein Abschnitt des Linienabschnitts 1, so dass der Abstand 0 beträgt.
Wenn sie sich kreuzen oder berühren, ist der Abstand 0.
0 Stimmen
Um die Frage zu verdeutlichen, schlage ich vor, dass Sie die Zeilen- Segment . Alle Linien in einer Dimension sind identisch. Könnten Sie auch die Annahmen klären, z. B. für jedes Segment,
x2 >= x1
(Ich bin nicht sicher, ob dies der Fall ist)?