如何旋转容器中的单个对象

本文关键字:单个 对象 何旋转 旋转 | 更新日期: 2023-09-27 17:59:45

你好,我创建了一个旋转函数来旋转图形。

然而,它旋转容器对象中的所有内容(我的容器是PictureBox(。

这是我的旋转函数:

public void RotateGraphics(PaintEventArgs e, float angle, PointF loc)
{
    e.Graphics.TranslateTransform(loc.X, loc.Y);
    e.Graphics.RotateTransform(angle);
}
public void SetOrigin(PaintEventArgs e, float objWidth, float objHeight)
{
    e.Graphics.TranslateTransform(-(objWidth / 2.0f), -(objHeight / 2.0f));
}

这就是我绘制对象的方式:

e.Graphics.FillRectangle(new SolidBrush(Color.Red), recP2.X, recP2.Y, elWidth, elHeight);

它工作得很好,但我的问题是:如何在容器中只旋转一个矩形或其他什么?

如何旋转容器中的单个对象

在绘制要应用变换的对象之前应用变换,然后重置变换:

    e.Graphics.DrawRectangle(Pens.Blue, 10, 10, 20, 20);
    e.Graphics.RotateTransform(20);
    e.Graphics.DrawRectangle(Pens.Red, 10, 30, 20, 20);
    e.Graphics.ResetTransform();

这样,旋转仅适用于第二个绘图命令(红色矩形(。