コード例 #1
0
ファイル: quat1.cs プロジェクト: NorthSanta/Wanted
    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);
    }
コード例 #2
0
ファイル: quat1.cs プロジェクト: NorthSanta/Wanted
    public axisAngle ToAxisAngle()
    {
        axisAngle axis = new axisAngle();

        Normalize();
        axis.w = 2 * Mathf.Acos(w);
        float s = Mathf.Sqrt(1 - (w * w));

        if (s < 0.01)
        {
            axis.x = x;
            axis.y = y;
            axis.z = z;
        }
        else
        {
            axis.x = x / s;
            axis.y = y / s;
            axis.z = z / s;
        }

        return(axis);
    }
コード例 #3
0
ファイル: quat.cs プロジェクト: NorthSanta/Fabrik
    public axisAngle toAxisAngle()
    {
        axisAngle axis = new axisAngle();

        this.normalize();
        axis.w = 2 * Mathf.Acos(this.w);
        float s = Mathf.Sqrt(1 - (this.w * this.w));

        if (s < 0.01)
        {
            axis.x = this.x;
            axis.y = this.y;
            axis.z = this.z;
        }
        else
        {
            axis.x = this.x / s;
            axis.y = this.y / s;
            axis.z = this.z / s;
        }

        return(axis);
    }