Exemplo n.º 1
0
 /// <summary>
 /// create a rotation matrix from a fwd and side
 /// 2D vector
 /// </summary>
 /// <param name="fwd"></param>
 /// <param name="side"></param>
 public void Rotate(Vector2D fwd , Vector2D side)
 {
     Matrix3x3Data _data = new Matrix3x3Data(
         fwd.x,fwd.y,0,
         side.x,side.y,0,
         0,0,1);
     MatrixMultiply(_data);
 }
Exemplo n.º 2
0
        /// <summary>
        /// 构造旋转矩阵,注意:
        /// 此矩阵类为行向量矩阵
        /// </summary>
        /// <param name="rotation">旋转的角度,
        /// 有正负之分,在此矩阵中,逆时针旋转的角度为正,
        /// 顺时针则相反
        /// </param>
        public void Rotate(float rotation)
        {
            float sin = (float)Math.Sin(rotation);
            float cos = (float)Math.Cos(rotation);

            Matrix3x3Data _data = new Matrix3x3Data(
                cos,sin,0,
                -sin,cos,0,
                0,0,1);
            MatrixMultiply(_data);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 构造缩放矩阵
        /// </summary>
        /// <param name="xScale"></param>
        /// <param name="yScale"></param>
        public void Scale(float xScale , float yScale)
        {
            Matrix3x3Data _data =new Matrix3x3Data(
                xScale,
                0,
                0,
                0,
                yScale,
                0,
                0,
                0,
                1);

            MatrixMultiply(_data);
        }
Exemplo n.º 4
0
 public void Identity()
 {
     this.m_Data = new Matrix3x3Data(1,0,0,0,1,0,0,0,1);
 }
Exemplo n.º 5
0
        private void MatrixMultiply(Matrix3x3Data mIn)
        {
            Matrix3x3Data data = new Matrix3x3Data();

            data._11 = this.m_Data._11 * mIn._11 +
                this.m_Data._12 * mIn._21 +
                this.m_Data._13 * mIn._31;
            data._12 = this.m_Data._11 * mIn._12 +
                this.m_Data._12 * mIn._22 +
                this.m_Data._13 * mIn._32;
            data._13 = this.m_Data._11 * mIn._13 +
                this.m_Data._12 * mIn._23 +
                this.m_Data._13 * mIn._33;
            data._21 = this.m_Data._21 * mIn._11 +
                this.m_Data._22 * mIn._21 +
                this.m_Data._23 * mIn._31;
            data._22 = this.m_Data._21 * mIn._12 +
                this.m_Data._22 * mIn._22 +
                this.m_Data._23 * mIn._32;
            data._23 = this.m_Data._21 * mIn._13 +
                this.m_Data._22 * mIn._23 +
                this.m_Data._23 * mIn._33;
            data._31 = this.m_Data._31 * mIn._11 +
                this.m_Data._32 * mIn._21 +
                this.m_Data._33 * mIn._31;
            data._32 = this.m_Data._31 * mIn._12 +
                this.m_Data._32 * mIn._22 +
                this.m_Data._33 * mIn._32;
            data._33 = this.m_Data._31 * mIn._13 +
                this.m_Data._32 * mIn._23 +
                this.m_Data._33 * mIn._33;

            this.m_Data = data;
        }
Exemplo n.º 6
0
        public void Translate(float x , float y)
        {
            Matrix3x3Data mat = new Matrix3x3Data(1,0,0,0,1,0,x,y,1);

            MatrixMultiply(mat);
        }