示例#1
0
        /// <summary>
        /// 逆行列を取得する。
        /// </summary>
        /// <returns></returns>
        public Matrix44F GetInverted()
        {
            Matrix44F o = this;

            o.SetInverted();
            return(o);
        }
示例#2
0
        public static Matrix44F operator *(Matrix44F left, Matrix44F right)
        {
            Matrix44F o_ = new Matrix44F();

            Mul(ref o_, ref left, ref right);
            return(o_);
        }
示例#3
0
        /// <summary>
        /// Transformを計算します。
        /// </summary>
        /// <param name="position">座標</param>
        /// <param name="centerPosition">中心座標</param>
        /// <param name="angle">角度(弧度法)</param>
        /// <param name="scale">拡大率</param>
        /// <returns></returns>
        internal static Matrix44F CalcTransform(Vector2F position, Vector2F centerPosition, float angle, Vector2F scale)
        {
            var matPosition       = Matrix44F.GetTranslation2D(position);
            var matCenterPosition = Matrix44F.GetTranslation2D(-centerPosition);
            var matRotate         = Matrix44F.GetRotationZ(angle);
            var matScale          = Matrix44F.GetScale2D(scale);

            return(matPosition * matScale * matRotate * matCenterPosition);
            // NOTE: 一気に計算したほうがよさそう
        }
示例#4
0
        /// <summary>
        /// 乗算を行う。
        /// </summary>
        /// <param name="o">出力先</param>
        /// <param name="in1">行列1</param>
        /// <param name="in2">行列2</param>
        public static void Mul(ref Matrix44F o, ref Matrix44F in1, ref Matrix44F in2)
        {
            Matrix44F _in1 = in1;
            Matrix44F _in2 = in2;

            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    float v = 0.0f;
                    for (int k = 0; k < 4; k++)
                    {
                        v += _in1.Values[i, k] * _in2.Values[k, j];
                    }
                    o.Values[i, j] = v;
                }
            }
        }