示例#1
0
 //----------------------------------------------------------------------------------------------------x
 /// <summary>Multiplies this matrix with the specified matrix values.</summary>
 /// <param name="m"></param>
 /// <param name="matrixDOrder"></param>
 internal void Multiply(MatrixD m, MatrixDOrder matrixDOrder)
 {
     Multiply(m._rSX, m._rRY, m._rRX, m._rSY, m._rDX, m._rDY, matrixDOrder);
 }
示例#2
0
        //----------------------------------------------------------------------------------------------------x
        /// <summary>Multiplies this matrix with the specified matrix values.</summary>
        /// <param name="rSXp"></param>
        /// <param name="rRYp"></param>
        /// <param name="rRXp"></param>
        /// <param name="rSYp"></param>
        /// <param name="rDXp"></param>
        /// <param name="rDYp"></param>
        /// <param name="matrixDOrder"></param>
        internal void Multiply(Double rSXp, Double rRYp, Double rRXp, Double rSYp, Double rDXp, Double rDYp, MatrixDOrder matrixDOrder)
        {
            Double rSXn, rRYn, rRXn, rSYn, rDXn, rDYn;

            if (matrixDOrder == MatrixDOrder.Prepend)
            {
                rSXn = rSXp * _rSX + rRYp * _rRX;
                rRYn = rSXp * _rRY + rRYp * _rSY;
                rRXn = rRXp * _rSX + rSYp * _rRX;
                rSYn = rRXp * _rRY + rSYp * _rSY;
                rDXn = rDXp * _rSX + rDYp * _rRX + _rDX;
                rDYn = rDXp * _rRY + rDYp * _rSY + _rDY;
            }
            else
            {
                //System.Drawing.Drawing2D.Matrix m1 = new System.Drawing.Drawing2D.Matrix((Single)_rSX, (Single)_rRY, (Single)_rRX, (Single)_rSY, (Single)_rDX, (Single)_rDY);
                //System.Drawing.Drawing2D.Matrix ma1 = new System.Drawing.Drawing2D.Matrix((Single)m._rSX, (Single)m._rRY, (Single)m._rRX, (Single)m._rSY, (Single)m._rDX, (Single)m._rDY);
                //m1.Multiply(ma1, System.Drawing.Drawing2D.MatrixOrder.Append);  // es wird Append ausgeführt !!!
                rSXn = _rSX * rSXp + _rRY * rRXp;
                rRYn = _rSX * rRYp + _rRY * rSYp;
                rRXn = _rRX * rSXp + _rSY * rRXp;
                rSYn = _rRX * rRYp + _rSY * rSYp;
                rDXn = _rDX * rSXp + _rDY * rRXp + rDXp;
                rDYn = _rDX * rRYp + _rDY * rSYp + rDYp;
            }
            _rSX = rSXn;
            _rRY = rRYn;
            _rRX = rRXn;
            _rSY = rSYn;
            _rDX = rDXn;
            _rDY = rDYn;
        }