示例#1
0
文件: quat.cs 项目: NorthSanta/Fabrik
    public static MyQuat operator *(MyQuat q, MyQuat p)
    {
        MyQuat m = new MyQuat();

        //q.normalize();
        // p.normalize();
        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
文件: quat.cs 项目: NorthSanta/Fabrik
    public MyQuat fromAxisAngle(float angle, MyVec axis)
    {
        //angle *= Mathf.Rad2Deg;
        Debug.Log("angle :" + angle);
        MyQuat q = new MyQuat();

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


        Debug.Log("q.x" + q.x);
        Debug.Log("q.y" + q.y);
        Debug.Log("q.z" + q.z);
        Debug.Log("q.w" + q.w);
        return(q);
    }