Punkt relativ zu Richtung
-
also in meinem Spiel möchte das die Figur genau auf der linie entlang läuft. Die Linie besteht aus 2 2DVectoren, wenn ich die Differenz bilde hab ich ja die Richtung (nach dem normalisieren). Wenn ich den jetzt zu einer Position hinzuaddiere, geht er ja entweder nach links oder nach rechts, je nachdem, wie die Linine angegeben sind. Darum möchte ich berechnen, ob die Schwerkraftsvektor als Punkt rechts oder links vo der Linienrichtung ist, so dass ich entscheiden kann, wann ich die addieren oder subtrahieren soll. Also in etwa so, wenn der Spieler runterfällt, läuft er beim linksdruck nach links, wird er von unten gegen die Linie gedrückt läuft er nach rechts, wenn man links drück. (Evtl. werde ich alles später zur Schwerkraft hin drehen, so dass man immer nach "links" läuft). Wie kann ich das also ausrechnen?
-
Berechne die Steigung der Geraden, dann siehst du am Vorzeichen in welche Richtung deine Figur abdriftet.
-
hm, das mit der Steigung stell ich mir zeimlich schwierig vor, da die Linien ja auch senkrecht sein können, un dide Steigung dann unendlich wäre. Und das mit dem Vorzeichen verstehe ich auch nciht so ganz, kann ja in meinem Fall auch sein, das die Gravitation schräg wirkt.
Mein Problem ist halt das der Richtungsvektor der Linie machnmal halt leider negativ ist weshalb ich dann ja addition und Subtraktion vertauschen oder ihn mit -1 mulitplizieren müsste. Und wann ich das muss möchte ich damit gerne ausrechnen.
-
Tja, mir war der Gedanke gekommen, das ich ja vieleicht dsa Punktprodukt nehmen könnte. Da käme ja ein Winkel bei heraus, und wenn der größer oder kleiner als 180 Grad ist, wüsste ich welche Richtung es ist. Doch leider haben meine Test ergeben, das 170 und 190 Grad den selben cosinus haben, welcher bei 180 Grad am größten ist. Demnach bäuchte ich eigenltich noch einen sinus Wert, da müsste es ja eigenltich sein. Also gibt es auch ne spezialform wie man den sinus eines Winkels ausrechnet?
-
Mir ist gerade doch noch ein guter Einfall gekommen. Ich nehme einfach die Senkrechte, dann erhalte ich entweder Werte größer oder kleiner Null!