The affine transform was previously multiplied by the translation matrix on
the right but this was incompatible with both the MSW version of the same
method and all the other methods of the generic version.
So multiply the transform by the translation on the left, as everywhere else.
Closes #13875.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70444
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
//
// add the translation to this matrix
//
// 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)
{
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
}
// add the scale to this matrix
wxAffineMatrix2D matrix;
matrix.Mirror(wxVERTICAL);
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);
}
dc.SetTransformMatrix(matrix);
dc.DrawBitmap(m_bmpOrig, 0, 0);
}
wxAffineMatrix2D matrix;
matrix.Rotate(-0.5 * M_PI);
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);
}
dc.SetTransformMatrix(matrix);
dc.DrawBitmap(m_bmpOrig, 0, 0);
}