Rotation im Raum anhand 2er Vektoren

AMD

Software-Overclocker(in)
Hey Leute ;)

Folgende Situation:
Wir haben in einem 3D-Raum 2 Vektoren mit 2 unterschiedlichen Richtungen.
Ich versuche das mal einfach zu beschreiben anhand 2er Personen!
Person A steht im Mittelpunkt und schaut gerade aus.
Person B steht 10m weiter rechts und schaut ebenfalls geradeaus (auch wenn die Blickrichtung zu Person B unwichtig ist).
Damit Person A Person B sieht, müsste Person A sich um 90° drehen!
Die Frage ist, wie leite ich anhand der Koordinaten von Person B die Blickrichtung für meine Person A her? Schön wäre es, wenn das jemand anhand eines mathematischen Beispiels vorrechnet, coden würde ich das dann schon selber^^

Ps. Ich will keine Funktion von DirectX wie z.B. D3DXMatrixRotation() :schief:
 
Wenn Person A an Punkt A steht und Person B an Punkt B, ist die Soll-Blickrichtung entlang des Vektors B-A. Dein Problem ist also wohl, den Winkel zu bestimmen. Den Winkel zwischen den Vektoren A und B bekommst du mit cos(w)=(A*B)/(|A|*|B|). (In deinem Fall müsstest du also A und B als die Blickrichtungen nehmen.) Einen Vektor im Raum rotieren kannst du mittels Multiplikation mit einer Matrix (A' = R*A mit der Rotationsmatix R). Da man Formeln hier nicht so gut reinschreiben kann, hier der Wikipediaartikel: Drehmatrix
 
Zurück