Also, ich fasse das mal zusammen, ja? (Ich bediene mich dabei bei ein paar Grundbegriffen der Vektorrechnung.)
Du hast ein 2-dimensionales Koordinatensystem und zwei Vektoren:
Den Ortsvektor (x, y) eines Punktes P und einen Richtungsvektor w=(u,v), der die Blickrichtung angibt.
Da für die Blickrichtung der Betrag des Vektors irrelevant ist, kann man seinen Betrag auf 1 normieren. Außerdem möchtest du ihn gerne in Polarkoordinaten angeben, das heißt in einer Darstellung, in der Winkel und Länge des Vektors gegeben sind.
Ich nehme mal an, dass der Winkel in Bezug auf die x-Achse gegeben ist, in mathematisch positiver Zählweise also gegen den Uhrzeigersinn. Das ist nämlich das Standardbezugssystem.
Der Vektor w hat dann die Darstellung
w = r*(cos φ, sin φ)
Bzw. mit der Normierung auf die Länge r=1:
w = (cos φ, sin φ)
P = (x, y)
sind also die gegebenen Größen.
Gesucht ist nun ein Punkt P' für den gilt:
|P'-P|=5
P'-P ⊥ w
Und dazu die mathematisch etwas schwer zu formulierende Forderung, dass P' "rechts" von der Blickrichtung liegt. Man könnte das so formulieren:
PP'* x w* = (0,0,1)
wobei unter w* und PP'* die Erweiterung auf eine dritte Dimension durch hinzufügen einer beliebigen aber identischen z-Komponente der beiden Vektoren ist.
Soviel zur Ausgangssituation, die Lösung ist eigentlich relativ leicht und bedient sich wieder dem Konzept der Polarkoordinaten:
Damit P'-P (also der Verbindungsvektor zwischen den beiden Punkten) senkrecht auf w steht, muss offenbar |ψ-φ|=90° gelten, wobei ψ der Winkel des Verbindungsvektors ist. Seine Länge ist außerdem r=5.
Damit ergibt sich für den Verschiebungsvektor eine von zwei Möglichkeiten:
P'-P = 5*(cos(φ±90°), sin(φ±90°))
Zeichnet man sich die beiden Möglichkeiten auf, so erkennt man, dass die mit dem Minus der entspricht, für die der Punkt P' rechts neben der Blickrichtung liegt.
Verwendet man jetzt noch
cos(φ-90°) = sin(φ)
sin(φ-90°) = -cos(φ)
was man z.B. aus den Additionstheoremen oder durch Zeichnen und nach rechts verschieben der beiden Funktionen beweisen kann, so erhält man:
P' - P = 5*(sin(φ), -cos(φ))
P' = P + 5*(sin φ, -cos φ)
P' = (x+5*sin φ, y-5*cos φ)
als Endergebnis.
Kleiner Nachtrag:
Falls in deiner Programmiersprache Sinus und Cosinus nicht implementiert sind, kannst du sie durch eine Reihenentwicklung approximieren.
sin x ≈ x - x3/3! + x5/5! - x7/7! + ...
cos x ≈ 1 - x2/2! + x4/4! - x6/6! + ...
Je mehr Summanden man verwendet, desto genauer wird der Ausdruck. Bei unendlich vielen konvergiert die Reihe gegen den exakten Wert.
Allerdings ist wichtig, dass diese Reihenentwicklung nur für Winkel im Bogenmaß richtig ist. Falls du weiterhin das Gradmaß verwenden willst, musst du den Winkel mit dem Dreisatz umrechnen.
x = 2π/360° * φ
wobei φ der Winkel im Gradmaß und x der Winkel im Bogenmaß ist.