Ergebnis 1 bis 6 von 6

Thema: Q von Rotation berechnen

  1. #1
    User
    Registriert seit
    21.04.2009
    Beiträge
    49

    Standard Q von Rotation berechnen

    Ich bin gerade dabei, eine BuildMod - Map in einer normale Crysis - Map
    umzuwandeln. Das klappt soweit, bis auf die Ausrichtung der Objekte (Rotation).
    All diese Daten der Objekte sind in einer XML gespeichert.

    Der Command "Rotate="x,y,z,q"" benötigt 4 Angaben. Die ersten 3(x,y,z) habe ich. Jedoch
    weiß ich überhaupt nicht, was "q" sein soll. Ist doch eigentlich überflüssig.
    Wenn ich für Q den Wert 0 angebe oder ihn weglasse, kommt folgender Fehler:

    CPhysicalEntity:SetParams(pe_params_pos): ( @ 0.0,0.0,0.0) Validation Error: q is invalid or unnormalized (perhaps non-uniform scaling was used?)

    Somit ist das Objekt im Spiel ziemlich verzeert dargestellt .
    Was ich also brauche, ist eine Methode oder eine Formel, um Q zu berechnen.
    Bei Google hab ich leider nichts darüber gefunden...
    Kann mir jemand bitte helfen?

  2. #2
    Professional Avatar von Roberi
    Registriert seit
    17.11.2007
    Ort
    Nordhemisphäre
    Beiträge
    2.719

    Standard

    klingt als wäre q die Skalierungsvariable. Sollte doch ganz normal auf 1 sein oder?


  3. #3
    User
    Registriert seit
    21.04.2009
    Beiträge
    49

    Standard

    Leider nicht, weil sich Q nach X,Y und Z der Rotation richtet .
    Hier hab ich mal von irgendeinem Objekt das von Sandbox gespeichert wurde
    alle 4 Angaben:

    X = 0.01645134
    Y = 0.333756
    Z = 0.94249791

    Q = 0.0058257258


    Das heißt also, das man Q mithilfe von X, Y und Z berechnet, aber wie?

  4. #4
    Professional Avatar von Roberi
    Registriert seit
    17.11.2007
    Ort
    Nordhemisphäre
    Beiträge
    2.719

    Standard

    Also wenn man die Werte multipliziert, dann kommt annähernd der Wert raus, aber das ist sicher nicht die Art und Weise wie das berechnet wird (dafür ist die Abweichung zu groß). Hast du noch mehr Beispiele für die Koordinaten?

    Oder vllt. noch ne detailiertere Fehlermeldung?


  5. #5
    User
    Registriert seit
    21.04.2009
    Beiträge
    49

    Standard

    Ne sorry, das ist alles was ich habe .
    Das mit dem Multiplizieren hab ich auch schon versucht, aber da gibts ja
    tausend Möglichkeiten, wie man das berechnen kann (sin, cos, tan, pi, ...).

    Wenn man doch nur wissen würde, was Q bedeutet, dann könnte man bei Google
    nach einer Formel dafür suchen.

    Noch ein Beispiel:
    X = 0.76604444
    Y = 0
    Z = 0

    Q = -0.64278764

    Hab zufällig eine LUA Variable mit dem Namen "g_Rad2Deg" entdeckt mit folgenden Wert: 57.2958
    Vielleicht hat die ja damit was zutun.
    Geändert von Pheka3 (23.03.2010 um 16:07 Uhr)

  6. #6
    User
    Registriert seit
    21.04.2009
    Beiträge
    49

    Standard

    Ich glaube ich weiß was es heißt: Q steht für Quaternions
    Die Formel:

    q = cos(a/2) + i ( x * sin(a/2)) + j (y * sin(a/2)) + k ( z * sin(a/2))

    Klar das jetz ein neues Problem kommt: Jetzt fehlen mir die richtigen Angaben
    für die Variablen (i, a, j, k), x, y und Z habe ich...

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •