grad zu vektor



  • Ich hab 2 float werte, die grad behinthalten.
    Je eine für x und eine für y. Die werden dann an Gl_rotatef weitergegeben, um die scene zu drehen, und um sich mit der Maus wie bei einem Ego shooter umsehen zu können.nun möchte ich diese grad werte in einen normierten x y z Vektor umrechenen.

    Ich hab nur keinen Schimmer, wie das geht.


  • Mod

    Du nimmst einen Einheitsvektor* und führst die gewünschten Rotationen darauf aus. Fertig. Vorsicht: Rotationen sind nicht kommutativ. Das kann man auch allgemein einmal im Voraus ausrechnen, wird dadurch aber sicherlich nicht wesentlich vereinfacht.

    *: Den, der auf dem ungedrehten System so steht, wie das gewünschte Ergebnis zum rotierten System stehen soll.



  • das Problem ist halt das ich nicht begreife wie diese rotationen ausführen soll.
    Bei einem grad gehts ja noch da ist das so
    x=sin(gradpitorad)
    y=cos(grad
    pitorad)

    aber wie geht das bei 2 gradangaben?



  • was meinst du genau?
    So wie ich dich verstehe könntest du z.B. die Drehachse ändern





  • ich weiss wie man aus einer gradangabe für die y achse einen 2d Vektor formt.

    Aber im 3d beriech gibt es noch eine 2.te Achse, die x achse darstellt. was also muss ich tun wenn ich 2 Gradangaben habe und daraus einen Vektor haben will, der in die Rcihtung der Gradangabe zeigt?


  • Mod

    Woher sollen wir wissen, was deine Werte bei dir bedeuten sollen? Wie du deine Daten intern organisierst musst du schon selber wissen.



  • okay dot, ich geh dann mal 4 Jahre höhere Mathematik studioern, damit ich das begreif.
    Warn Witz,
    danke ich galub ich komm damit klar, aber ich versteh trozdem nicht wieso die Wikipedia Autoren das ganze immer so kompliziert darstellen müssen.



  • alterbro schrieb:

    okay dot, ich geh dann mal 4 Jahre höhere Mathematik studioern, damit ich das begreif.
    Warn Witz,
    danke ich galub ich komm damit klar, aber ich versteh trozdem nicht wieso die Wikipedia Autoren das ganze immer so kompliziert darstellen müssen.

    Schau dir einfach mal z.B. das Bild hier an. Mal es dir mit deinem Koordinatensystem auf und leit es dir selber her. Es ist nix anderes, als der dir bekannte 2D Fall zweimal angewandt. Das gestrichelte Dreieck ist rechtwinklig und definiert eine Ebene...


  • Mod

    Kompliziert? Ein bisschen lineare Algebra musst du schon können für Computergrafik. Wie ist denn dein Kenntnisstand? Das ist Stoff für die Oberstufe und erstes Semester im Mathestudium, aber ohne wirst du einfach nicht auskommen. Wenn du uns verrätst, was du kannst, dann können wir dir besser helfen.



  • SeppJ schrieb:

    Woher sollen wir wissen, was deine Werte bei dir bedeuten sollen? Wie du deine Daten intern organisierst musst du schon selber wissen.

    Ich will nur wissen wie ich aus zwei grad angaben, so wie auf 2 geodreiecken, von denen eines nach oben zeigt, während das andere Flach auf dem Tisch liegt.(Nur zur veranschaulichung) einen Vektor berechene, der in die gegebene Richtung schaut. also zb wenn die x gradangabe 0 ist und die y gradangabe 180 dann wäre der Vektor beispielsweise 0,0,-1.

    Doch wie mach ich das mit beliebigen Zahlen?



  • alterbro schrieb:

    Ich will nur wissen wie ich aus zwei grad angaben, so wie auf 2 geodreiecken, von denen eines nach oben zeigt, während das andere Flach auf dem Tisch liegt.(Nur zur veranschaulichung) einen Vektor berechene, der in die gegebene Richtung schaut. also zb wenn die x gradangabe 0 ist und die y gradangabe 180 dann wäre der Vektor beispielsweise 0,0,-1.

    Doch wie mach ich das mit beliebigen Zahlen?

    Siehe z.B. auch mein letztes Posting; aber hier gibst du dir den Hinweis eh schon selbst: Deine zwei Geodreiecke sind genau das: Zwei rechtwinklige Dreiecke...


  • Mod

    alterbro schrieb:

    Doch wie mach ich das mit beliebigen Zahlen?

    Das ist doch mal eine konkrete Beschreibung. Ich hoffe, sie war exakt, denn Richtungen in 3D kann man auf viele verschiedene Arten angeben und jede führt zu einer leicht unterschiedlichen Rechnung. Die Lösung habe ich in der ersten Antwort beschrieben: Wenn x deine Blickrichtung ist, xy-die Ebene des "liegenden" Dreiecks und z die Richtung "nach oben", dann nimmst du den Vektor (1,0,0), rotierst ihn um die y-Achse mit der Gradangabe des stehenden Dreiecks und rotierst das Ergebnis um die z-Achse mit der Gradangabe des liegenden Dreiecks. Das Ergebnis ist deine neue Blickrichtung.

    Warum nicht umgekehrt? Probiers mal mit zwei Geodreiecken und einem Stift als Blickrichtung aus. Ist sicherlich sehr lehrreich und veranschaulicht, wieso wir genau wissen müssen, was deine Angaben überhaupt bedeuten, bevor wir dir helfen können.



  • Mann ich komm mir vor wie in diesen 80ger Krimis, in denen der Held genau weiss das er was übersehen hat und Ihm am Ende plötzlich einfällt das der Graf den Erpresser Brief gar nicht gelesen haben kann, weil er um die Zeit jagen war.

    Aber, keine Angst, ich glaubs ich habs ich meld mich wieder wenn ich den Täter in meine Funktion eingebaut hab, danke dass ihrs mir nicht so einfach gemacht habt.



  • okay, habs geschafft, danke



  • 👍


Log in to reply