Author Topic: Bisschen Mathe ;)  (Read 1094 times)

Tenorm

  • Guest
Bisschen Mathe ;)
« on: 2009-Aug-02 »
so:

Code: (glbasic) [Select]
FUNCTION NewtonBuildMatrix: rx, ry, rz, x, y, z, M[]
LOCAL sa,sb,sc, ca,cb,cc
LOCAL sacb, cacb
DIM M[16]
    ca       = COS(-rx);
    sa       = SIN(-rx);
    sb       = COS(ry);
    cb       = SIN(ry);
    cc       = COS(-rz);
    sc       = SIN(-rz);

sacb=sa*cb
cacb=ca*cb

    M[0]  =   sb * cc;
    M[1]  =  -sb * sc;
    M[2]  =  -cb;

    M[4]  = -sacb * cc + ca * sc;
    M[5]  =  sacb * sc + ca * cc;
    M[6]  =  -sa * sb;

    M[8]  =  cacb * cc + sa * sc;
    M[9]  = -cacb * sc + sa * cc;
    M[10] =   ca * sb;

   M[12]= x
   M[13]= y
   M[14]= z
    M[15]= 1;
ENDFUNCTION

und jetzt das ganze R?ckw?rts (heist: ich m?chte aus M[16] wieder rotationen machen), y-rotation is ja noch einfach, aber irgendwie komm ich bei x- und z-rotation nicht durch, bleib i.wie bei sb h?ngen weil das von cc abh?ngig is und umgekehrt  :S
aber  :x, ihr seit dran!

Danke!

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10762
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Bisschen Mathe ;)
« Reply #1 on: 2009-Aug-03 »
Code: (glbasic) [Select]
//! Get the euler angles from an OpenGL matrix
// \param m[] - the matrix
// \param rx - [out] the rotation around the x axis
// \param ry - [out] the rotation around the y axis
// \param rz - [out] the rotation around the z axis
FUNCTION EntityGetEulers: mat[], BYREF X, BYREF Y, BYREF Z
// roll = rx
// yaw = ry
// pitch = rz

LOCAL rotx, roty, C

    Y = -ASIN(mat[2])
    C = COS(Y)

    IF ABS(C)>1e-7
            LOCAL invC = 1.0/C
            rotx = mat[10] * invC
            roty = mat[6]  * invC
            X = ATAN( roty, rotx )
            rotx = mat[0] * invC
            roty = mat[1] * invC
            Z = ATAN( roty, rotx )
    ELSE
            X = 0.0
            rotx =  mat[5]
            roty = -mat[4]
            Z = ATAN( roty, rotx )
    ENDIF
ENDFUNCTION

Tenorm

  • Guest
Re: Bisschen Mathe ;)
« Reply #2 on: 2009-Aug-03 »
Danke!
« Last Edit: 2009-Aug-03 by Tenorm »