RotateFlip - 何时应用?

时间:2010-10-09 18:35:14

标签: c# image drawing sprite flip

我正在使用RotateFlip水平翻转精灵。当绘制图形而不是图像时,似乎应用了RotateFlip。

问题是有些精灵需要翻转而有些精灵不需要(取决于精灵的方向)。我每次绘制翻转精灵时都不想克隆图像。

1 个答案:

答案 0 :(得分:1)

考虑在Graphics对象上使用转换矩阵,而不是在图像上使用RotateFlip。翻转相当于将X或Y坐标缩放-1。您可以预先计算单个翻转矩阵并随时使用它:

Matrix flipX = new Matrix();
flipX.Scale(-1, 1);

graphics.Transform = flipX;
// Draw your sprite here
graphics.ResetTransform();

但是请注意,绘制时必须传入修改过的坐标,例如。使用上述转换,您必须传递ContainerWidth - X而不是X