您好我创建了一个旋转功能来旋转图形。
然而,它会旋转容器对象中的所有内容(我的容器是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);
它工作正常但我的问题是:如何只旋转一个矩形或容器内的任何东西?
答案 0 :(得分:1)
应用转换beofore绘制要应用transfomration的对象,然后重置转换:
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();
这样,旋转仅适用于第二个绘图命令(红色矩形)。