Hallo,
Ich steh grad ziemlich auf dem Schlauch, und zwar hab ich folgende Probleme:
Ich habe eine Highmap, dabei will ich ein Objekt so auf ein Dreieck dieser Highmap stellen, dass es sozusagen im rechten Winkel zu dem Dreieck steht.
Gegeben habe ich die genauen X- und Z- Positionen und den (normalisierten) Normal-Vektor des Dreiecks, auf dem das Objekt stehen soll. Aber
1.) Wie bekomme ich das Objekt so hingedreht, dass es auch senkrecht dadrauf steht und
2.) (bereits gelöst)
Ähm... Hallo? Ich will wirklich nicht nerven, aber innerhalb von 3 Tagen habt ihr doch auch immer geantwortet!
Es ist ja bestimmt eine total simple Lösung, aber ich komme einfach nicht drauf. Also nochmal, falls ich mich irgendwie doof ausgedrückt habe:
Ich habe den Normal-Vektor eines Dreiecks, auf dem ein Objekt stehen soll. Also ist dieser Normal-Vektor sozusagen der Up-Vektor des Objekts (wenn man das Up-Vektor nennt...). Was ich jetzt brauche, sind die Winkel, die ich bei glRotatef eintragen muss bzw von mir aus auch mit Matrix-Operationen...
Aber ich denke, mit eins zwei ArcSin / ArcCos ist es getan, aber ich weiß nicht, was ich mit welchem Element des Vektors machen muss, um welchen Rotations-Winkel zu erhalten.
Das Problem ist, das die Ausrichtung des Fahrzeuges es alleine anhand des Up Vektors nicht eindeutig ist. Denn schließlich kann es ja um diesen Vektor gedreht werden und bleibt immer noch auf dem Dreieck stehen.
Gut, aber mal abgesehen davon, nehmen wir mal an, der Winkel, mit dem das Objekt um den Vektor gedreht ist, ist 0. Ist auch erstmal nicht weiter von Bedeutung.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
(Ohne Gewähr)
Du hast die Normale des Dreiecks und den Up-Vektor. Also berechnest du die drei Winkel zwischen den Vektoren (in Grad) und hast so nen Euler-Vektor. Aus nem Eulervektor kann man dann direkt eine Rotationsmatrix erstellen, mit der man dann nur noch den Up-Vektor multiplizieren muss. Mehr zu Euler-Winkeln, und wie man daraus eine Matrix erstellt gibts hier. Das müsste eigentlich gehen...
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.