//----------------------------------------------------------------------------------------------------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); }
//----------------------------------------------------------------------------------------------------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; }