diff --git a/src/common/affinematrix2d.cpp b/src/common/affinematrix2d.cpp index 5df1bac1e6..0b1b9207dc 100644 --- a/src/common/affinematrix2d.cpp +++ b/src/common/affinematrix2d.cpp @@ -106,10 +106,13 @@ bool wxAffineMatrix2D::IsEqual(const wxAffineMatrix2DBase& t) const // // add the translation to this matrix +// | 1 0 0 | | m_11 m_12 0 | +// | 0 1 0 | x | m_21 m_22 0 | +// | dx dy 1 | | m_tx m_ty 1 | void wxAffineMatrix2D::Translate(wxDouble dx, wxDouble dy) { - m_tx += dx; - m_ty += dy; + m_tx += m_11 * dx + m_21 * dy; + m_ty += m_12 * dx + m_22 * dy; } // add the scale to this matrix diff --git a/tests/graphics/affinematrix.cpp b/tests/graphics/affinematrix.cpp index ee6c5470dd..90f56cc1a9 100644 --- a/tests/graphics/affinematrix.cpp +++ b/tests/graphics/affinematrix.cpp @@ -112,7 +112,7 @@ void AffineTransformTestCase::VMirrorAndTranslate() wxAffineMatrix2D matrix; matrix.Mirror(wxVERTICAL); - matrix.Translate(0, m_bmpOrig.GetHeight() - 1); + matrix.Translate(0, -m_bmpOrig.GetHeight() + 1); dc.SetTransformMatrix(matrix); dc.DrawBitmap(m_bmpOrig, 0, 0); } @@ -134,7 +134,7 @@ void AffineTransformTestCase::Rotate90Clockwise() wxAffineMatrix2D matrix; matrix.Rotate(-0.5 * M_PI); - matrix.Translate(m_bmpOrig.GetHeight(), 0); + matrix.Translate(0, -m_bmpOrig.GetHeight()); dc.SetTransformMatrix(matrix); dc.DrawBitmap(m_bmpOrig, 0, 0); }