Objekt ausrichten



  • Hi!
    Ich habe ein kleines Problem, das ich zur Zeit irgendwie nicht lösen kann...
    Ich möchte ein Objekt von der Y Rotation her auf ein anderes ausrichten und weiters das Objekt auf das auf das es ausgerichtet ist zu gehen lassen.

    Ich weiß aber nicht wie ich die nötige Rotation ausrechnen kann.
    Ich hoffe ihr versteht was ich meine ...
    Danke im vorraus!



  • Tipp: Benutze die atan2-Funktion. Der übergibst Du die Differenz der Objektpositionen auf der x- und der z-Achse und Du kriegst den Drehwinkel raus.



  • Danke!
    Müsste aber so doch auch funktinieren, oder hab ich da einen Denkfehler?!

    CVector3 tmp1 = Objekt1->mPos;
    CVector3 tmp2 = Objekt2->mPos;

    tmp1.Normalize ();
    tmp2.Normalize ();

    float dotProduct=tmp1.Dot (tmp2);
    float angle = acosf(dotProduct);
    float beta = 180-90-alpha;

    Aber beim dotProduct kommt 0 raus -> Keine Lösung...



  • Ja, da ist ein Denkfehler!
    Du müsstest den Winkel zwischen der Blickrichtung des Objekts und dem Differenzvektor der beiden Objekte berechnen.
    Oder noch ein anderer Ansatz: Rechne die Position des Zielobjekts in Koordinaten relativ zum steuerbaren Objekt um. Dann hast Du die Zielkoordinaten aus Sicht des Objekts. Wenn x > 0: nach rechts drehen, wenn x < 0: nach links drehen!



  • okay, danke!


Anmelden zum Antworten