示例#1
0
    //Operators
    public static MyQuat operator *(MyQuat q, MyQuat p)
    {
        MyQuat m = new MyQuat();

        m.w = (p.w * q.w - p.x * q.x - p.y * q.y - p.z * q.z);
        m.x = (p.w * q.x + p.x * q.w - p.y * q.z + p.z * q.y);
        m.y = (p.w * q.y + p.x * q.z + p.y * q.w - p.z * q.x);
        m.z = (p.w * q.z - p.x * q.y + p.y * q.x + p.z * q.w);
        m.Normalize();

        return(m);
    }
示例#2
0
    public static MyQuat FromAxisAngle(axisAngle axis)
    {
        MyQuat q = new MyQuat();

        q.w = Mathf.Cos(axis.w / 2);
        q.x = axis.x * Mathf.Sin(axis.w / 2);
        q.y = axis.y * Mathf.Sin(axis.w / 2);
        q.z = axis.z * Mathf.Sin(axis.w / 2);
        q.Normalize();

        return(q);
    }