0 Daumen
2,7k Aufrufe

Aufgabe:

Gegeben ist eine Gerade, bestimmt durch zwei Punkte. Es soll mit einer Formel berechnet werden, ob der Punkt rechts oder links der Geraden liegt.

Mit der Berechnung der Determinanten ginge es, aber ich weiß die Formel nicht mehr.

Avatar von

Vom Duplikat:

Titel: Wie kann man einfach feststellen ob ein Punkt rechts oder links einer Geraden liegt?

Stichworte: rechts,links,punkt,gerade

Aufgabe:

Wie kann man einfach feststellen ob ein Punkt rechts oder links einer Geraden liegt?


Problem/Ansatz:

gegeben sind drei Punkte, es soll festgestellt werden, ob ein Punkt rechts oder links der Geraden liegt, die die beiden anderen Punkte verbindet ?

5 Antworten

+1 Daumen

Haben die beiden anderen Punkte die gleiche x-Koordinate, dann reicht es, die x-Koordinaten zu vergleichen.

Andernfalls bestimme die Gleichung

         y = mx + b

der Geraden. Der Punkt P = (x1 y1) liegt rechts von der Geraden, wenn die Gleichung

        y1 = mx + b

eine Lösung hat, die kleiner als x1 ist.

Avatar von 107 k 🚀

Danke für die Antwort, gibt es keine anderen Möglichkeiten?

Natürlich gibt es noch andere Möglichkeiten. Die, die ich geschildert habe, ist die einfachste, die mir eingefallen ist.

+1 Daumen

Hallo,

wenn Du definiert hast, was "recht" oder "links" bedeutet, hast Du die Frage beantwortet.

Gruß

Avatar von 14 k

rechts ist kleiner, links ist größer

könnte man das nicht mit Dreiecksfläche berechnen.

Da war etwas mit negativer Fläche.

rechts ist kleiner, links ist größer

Wie hast du denn kleiner und größer bei Punkten und Geraden definiert?

Also ich gehe folgendermassen vor, über den Vektor zwischen zwei Punkten (q und m) und den Punkt der untersucht wird (p).

Richtung ist gegeben. Ist der Punkt rechts dann ist Ergebnis +, wenn links dann -

Rechts und Links orientieren Sich an der Richtung des Vektors.

Das ist meine Formel:

let det = (mX-qX)*(pY-qY)-(mY-qY)*(pX-qX);

Aber, obwohl die Linie vom Punkt zum Mittelpunkt eines Kreises geht und die Punkte auf dem Kreis sind, müssten also Hälfte positiv und Hälfte negativ sein, leider ist der immer positiv. Und das kann nicht sein.

Ich glaube, dir ist die Fragwürdigkeit deines Ansatzes nicht bewusst.

Natürlich könnte man so etwas definieren wie: Wenn man von Q in Richtung M geht und dann von M zu P geht und man dazu in M rechts abbiegen muss, liegt P rechts von QM, Es geht aber laut Aufgabe nicht um die Lage von P bezüglich des Vektors QM, sondern bezüglich der GERADE QM.

Wenn man als Richtungsvektor dieser Geraden nicht QM, sondern MQ nimmt, müsste man in M gerade in die entgegengesetzte Richtung abbiegen, dann wird das ursprüngliche rechts zu links und umgekehrt.

+1 Daumen
Wie kann man einfach feststellen ob ein Punkt rechts oder links einer geraden liegt?


Dazu musst du eine Fallunterscheidung machen. Bei Geraden in der x-y-Ebene mit einem positiven Anstieg liegt ein Punkt links von g, wenn er oberhalb von g liegt, und er liegt rechts von g, wenn er unterhalb von g liegt.

Bei Geraden mit negativem Anstieg ist es andersherum.

Um kritischen Kommentaren vorzubeugen: ich weiß, dass Begriffe wie "links von", "rechts von", "unter-/oberhalb von" relativ sind und von Standpunkt des Betrachters abhängen. Ich bediene hier nur die aus der naiven Schülersicht abgeleitete "übliche" Lagevorstellung des Koordinatensystems.

Avatar von 55 k 🚀
+1 Daumen

Hallo,

Das ist meine Formel:
let det = (mX-qX)*(pY-qY)-(mY-qY)*(pX-qX);

Die Formel ist korrekt und Du solltest hier unterschiedliche Vorzeichen bekommen, wenn \(P\) einmal links und einmal rechts der Geraden liegt.

Ist der Punkt rechts dann ist Ergebnis +, wenn links dann -

Es ist umgekehrt. Nimmst Du den Vektor \(\vec{QM} = M-Q\) als Bezugrichtung, so stehen dessen Koordinaten in der ersten Spalte der 2x2-Matrix, von der die Determinante berechnent wird. Dann gilt: $$(M-Q)\times (P-Q) \\ \quad = \left|\begin{array}{} m_x-q_x & p_y-q_y \\ m_y-q_y & p_y-q_y \end{array}\right| = \begin{cases} \gt 0, \quad p \space \text{links}\\ < 0, \quad p\space \text{rechts}\end{cases}$$Das 'links' und 'rechts' bezieht sich auf die Richtung von \(\vec{QM}=M-Q\). So als ob man sich auf den Punkt \(Q\) stellt und nach \(M\) blickt. Hier mal ein Beispiel:

blob.png

$$M = \begin{pmatrix}2\\ 2\end{pmatrix}, \quad Q = \begin{pmatrix}7\\ -1\end{pmatrix}, \quad M-Q=\begin{pmatrix}m_x-q_x\\ m_y-q_y\end{pmatrix} = \begin{pmatrix}-5\\ 3\end{pmatrix} \\ P = \begin{pmatrix}3\\ 6\end{pmatrix} \implies P-Q = \begin{pmatrix}p_x-q_x\\ p_y-q_y\end{pmatrix}= \begin{pmatrix}-4\\ 7\end{pmatrix} \\ (m_x-q_x)\cdot (p_y-q_y)-(m_y-q_y)\cdot (p_x-q_x) \\ \quad = -5 \cdot 7 - 3 \cdot (-4) = -35+12 = -23 \lt 0 $$rechne es ruhig mal für die anderen beiden Punkte in der Skizze nach:$$P_{(-2,3)} \to (M-Q) \times (P_{(-2,3)}-Q) = 7 \gt 0  \to \text{links}\\ P_{(11,-3)} \to (M-Q) \times (P_{(11,-3)}-Q) = -2 \lt 0 \to \text{rechts}$$Solltest Du immer das gleiche Vorzeichen bekommen, liegt Dein Problem außerhalb dieser Code-Zeile.

Wenn Du den Winkel \(\angle QMP\) berechnen möchtest, sieht die Sache leicht anders aus. Um einen Winkel zu bestimmen, betrachtet man die beiden Vektoren, die vom Scheitel des Winkels ausgehen:

blob.png

Im Falle des Winkels \(\angle QMP\) (blau) ist der Scheitel \(M\) und die beiden Vektoren sind \(\vec{MQ} = Q-M\) (die Bezugsrichtung; rot) und \(\vec{PM}\) (der 'freie' Schenkel; blau). In der Skizze oben ist$$\vec{MQ} = \begin{pmatrix}5\\ -3\end{pmatrix}, \quad \vec{MP} = \begin{pmatrix}1\\ 4\end{pmatrix}$$Weiter ist dann$$\vec{MQ} \times \vec{MP} = \left|\begin{array}{cc}5& 1\\ -3& 4\end{array}\right| = 23 \\ \vec{MQ} \cdot \vec{MP} = (q_x-m_x)(p_x-m_x) + (q_y-m_y)(p_y-m_y)\\ \quad = 5 \cdot 1 +  (-3) \cdot 4  = -7$$Die zweite Zeile ist das Skalarprodukt der Vektoren. Die meisten Programmiersprachen verfügen über eine Funktion arctan2, die aus diesen beiden Werten den Winkel zwischen den Vektoren berechnent. In Javascript ist das Math.atan2(y,x):$$\text{Math.atan2}(23,-7) \approx 1,866 \equiv 106,9°$$Das Ergebnis ist ein Wert im Bogenmaß (rad) zwischen \(-\pi\) und \(\pi\). Der Wert ist wieder positiv, wenn \(P\) auf der linken Seite von \(\vec{MQ}\) liegt. Da sich hier aber zu dem Bild vorher die Blickrichtung geändert hat, haben sich auch die Seiten links und rechts vertauscht. Achte bei atan2 darauf, wo Du welchen Wert einträgst. Bei Javascript kommt zuerst der Wert aus der 'Determinante' (nennt sich dort y-Wert). Excel kennt die Funktion auch, nur dort sind die Parameter vertauscht.

... und wie immer gilt: falls noch was unklar ist, bitte melden.

Avatar von 48 k
0 Daumen

Vielleicht stellst du mal die komplette Aufgabenstellung zur Verfügung.

g: ax + by - c mit a > 0

Wenn du jetzt den Punkt für x und y einsetzt sollte das Vorzeichen dir angeben ob der Punkt links oder rechts der geraden liegt.

d = ax + by - c > 0 → rechts der Geraden

d = ax + by - c < 0 → links der Geraden

Ich habe das jetzt aber doch nicht wirklich geprüft. Prüft das mal an den beispielen die du hast.

Avatar von 488 k 🚀

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community