Geradengleichung durch die Punkte A und B aufstellen, also $f(x)=....$. Dann prüfen, ob $f(Cx)>Cy$ oder $f(Cx)<Cy$. Im Fall = liegt C auf der Geraden.
Lehrer/Professor, Punkte: 24.03K
Ist nötig zum Bauen des Konturpolygons ─ densch 24.04.2022 um 11:49
Die obige Ungleichung gilt für die Richtung vom kleineren x-Wert zum größeren. Wenn die Richtung andersrum ist, muss die Ungleichung eben andersrum gelesen werden. Wenn man das Programmieren will, kann man das mit Multiplikation mit sgn(Ax-Bx) erledigen.
Den Sonderfall, dass beide x-Werte identisch sind, muss man noch getrennt behandeln. ─ mikn 24.04.2022 um 12:11
Wobei logisch betrachtet die VektorenAB und AC und ihre "Ausrichtung§ entsprechend ein gegensätzliches Vorzeichen als die Vektoren -AB und AC haben müssen.
Nur welche Formel die jetzt afür benutzt haben zur Herleitung, weiß ich nicht. Vielleicht sollte ich doch mal den Professor direkt befragen ─ densch 28.04.2022 um 01:55
Die Geradengleichung durch $A$ und $B$ lautet:
$y=f(x)=\frac{By-Ay}{Bx-Ax}(x-Ax) + Ay $ (Schulmathematik, ohne google).
Dann haben wir die Fälle:
1. $Ax\lt Bx$: Dann $Cy>f(Cx) \iff C$ links von der gerichteten Geraden. Multipliziere beiden Seiten mit $Bx-Ax$ und erhalte $DFV>0$.
2. $Ax>Bx$: Dann $Cy\lt f(Cx) \iff C$ links von der gerichteten Geraden. Multipliziere beiden Seiten mit $Bx-Ax$ und erhalte $DFV>0$.
Beide Fälle liefern also $DFV>0$ für "$C$ liegt links davon" (und andersrum), weil sich im 2. Fall das Ungleichungszeichen umdreht, was es ja auch soll.
Der 3. Fall $Ax=Bx$ geht nicht mit dieser Schulmathe-Geradengleichung, den kann man zu Fuß prüfen.
Fazit: Alle 3 Fälle führen ohne Vektorrechnung, Winkel, Rotationen auf die von Dir vorgegebene Bedingung mit dem DFV. ─ mikn 28.04.2022 um 13:45
Mit deiner Geradengleichung oben hätte ich die Fälle wie folgt konstruiert:
links: das ist der Fall wenn (Cx-Ax)*(Cy-f(Cx))>0
da entweder bildlich gesehen C links von A liegt und unterhalb der geraden ist(in dem Fall sind beide Terme negativ, das Produkt aber wieder positiv)
oder C rechts von A liegt und oberhalb der Geraden liegt.
Für rechts entsprechend die 2 anderen Fälle, wo das Produkt dann negativ ist.
Multipliziert man das Produkt aus und sortiert nach den y Werten, kommt gerade die DFV raus.
Man kann es ganz umständlich auch über Vektoren versuchen:
betrachten wir den Fall dass C links von A, B links von A auf der Geradne liegt (gerade halt nahc links zeigt) und unter der Geraden liegt.
Dann können wir von A aus ein Stück weit entlang der Geraden nach links gehen,
bis wir an einem Punkt P dann senkrecht nach unten gehen.
Den Vektor von A nach P kann man shcreiben als k*n, wobei n der normiete EInheitsvektor nahc links ist (n=AB/|AB|)
Also AP=k/|AB|*AB, mit einem bestimmten unbekannten k aus R.
Den senkrechten Vektor von P nahc C kann man naheliegenderweise schreiben als (0,dy), wobei dy<0 wenn C unter der Geraden und >0 wenn oberhalb.
Damit ergibt sich
AC=AP+PC
(Cx-Ax,Cy-Ay)=k/|AB|*(Bx-Ax,By-Ay)+(0,dy)
Die beiden Komponentengleichungen ausgeschrieben also:
Cx-Ax=k/|AB|*(Bx-Ax)
Cy-Ay=k/|AB|*(By-Ay)+dy
Also ein LGS mit 2 Unbekannten k und dy und 2 Gleichungen, wobei wir eigentlich nur dy brauchen am Ende.
Umstellen nach k/|AB| der ersten Gleichung und einsetzen in die 2. Gleichung liefert:
Cy-Ay=(Cx-Ax)/(Bx-Ax) *(By-Ay)+dy
Also dy=(Cy-Ay)-(Cx-Ax)/(Bx-Ax) *(By-Ay)
Nun analog zur ersten berehcnung muss nun für "links" gelten:
(Bx-Ax)*dy>0
Bx-Ax gibt an ob nahc links oder rechts zeigend und dy eben den senkrechten, mit Vorzeichen behafteten Abstand zur Geraden.
Wenn man nun in Kleinarbeit das Ausmultiplizieren würde, käme man vermutlich auf die selbe Formel für DFV :-) ─ densch 02.05.2022 um 14:59
Zu Deiner Herleitung: Es lässt sich etwas straffen, wenn Du die Normierung weglässt. Der Vektor von A nach P ist immer k*n, egal ob n normiert ist oder nicht. Beim Lösen des LGSs fällt ja auch k*|AB| wieder raus. ─ mikn 02.05.2022 um 15:31
(Bx-Ax) zeigt ja gerade an ob die Gerade nahc links oder rechts zeigt.
Klar, k ist ja nur ein Faktor.
Wollte halt ordentlich erst mal den Vektor normieren und dann wieder auf die passende Länge "strecken".
─ densch 04.05.2022 um 11:34
y=(By-Ay)/(Bx-Ax)*x+(Bx*Ay-AxBy)/(Bx-Ax)
Es müsste also:
Cy>(By-Ay)/(Bx-Ax)*Cx+(Bx*Ay-AxBy)/(Bx-Ax) sein.
entsprechend < für unterhalb.
Macht Sinn.
Nur gehts bei meinem Fall ja um eine gerichtete Gerade, heißt wenn ich bspw. A=(1,1) und B=(-1,-1),zeigt die Richtung der Geraden nach unten links und demnach würde
nun
"oberhalb"->rchts der Geraden bzw.
"unterhalb"->links der Geraden bedeuten.
irgendwas muss da noch fehlen um auf die eingängliche Formel zu kommen... ─ densch 24.04.2022 um 10:00