[Math] Wie berechne ich den Normalenvektor eines Liniensegments?


Answers

Ein anderer Weg, um darüber nachzudenken, besteht darin, den Einheitsvektor für eine gegebene Richtung zu berechnen und dann eine Drehung um 90 Grad gegen den Uhrzeigersinn anzulegen, um den normalen Vektor zu erhalten.

Die Matrixdarstellung der allgemeinen 2D-Transformation sieht folgendermaßen aus:

x' = x cos(t) - y sin(t)
y' = x sin(t) + y cos(t)

wobei (x, y) die Komponenten des ursprünglichen Vektors sind und (x ', y') die transformierten Komponenten sind.

Wenn t = 90 Grad, dann ist cos (90) = 0 und sin (90) = 1. Ersetzen und Multiplizieren ergibt:

x' = -y
y' = +x

Das gleiche Ergebnis wie zuvor, aber mit ein wenig mehr Erklärung, woher es kommt.

Question

Angenommen, ich habe ein Liniensegment von (x1, y1) zu (x2, y2). Wie berechne ich den Normalenvektor senkrecht zur Linie?

Ich kann viele Sachen darüber für Flugzeuge in 3D finden, aber keine 2D-Sachen.

Bitte gehen Sie einfach in die Mathematik (Links zu bearbeiteten Beispielen, Diagrammen oder Algorithmen sind willkommen), ich bin mehr Programmierer als Mathematiker;)




m1 = (y2 - y1) / (x2 - x1)

wenn senkrecht zwei Linien:

m1*m2 = -1

dann

m2 = -1 / m1 //if (m1 == 0, then your line should have an equation like x = b)

y = m2*x + b //b is offset of new perpendicular line.. 

b ist etwas, wenn Sie es von einem definierten Punkt aus übergeben möchten