我正在编写一个库,它将创建一个图形路径(多边形或矩形的形状)并旋转它,但我希望旋转的形状在其边界矩形内居中。我已经尝试了几乎所有方法来让形状在其中心旋转,但它在边缘处被切断。
下面是我写的一些小代码来尝试完成这个
GraphicsPath path = new GraphicsPath();
path.AddPolygon(new Point[] { new Point(0, 0), new Point(100, 0), new Point(100, 100), new Point(0, 100) });
Matrix m = new Matrix();
Matrix m2 = new Matrix();
m2.Rotate(30);
m.Translate(-((path.GetBounds(m2).Width) / 2), -((path.GetBounds(m2).Height) / 2));
m.Rotate(30, MatrixOrder.Append);
m.Translate(((path.GetBounds(m2).Width)/2), ((path.GetBounds(m2).Height)/2), MatrixOrder.Append);
path.Transform(m);
Bitmap b = new Bitmap((int)path.GetBounds().Width, (int)path.GetBounds().Height);
Graphics g = Graphics.FromImage(b);
g.FillPath(Brushes.Blue, path);
b.Save(@"c:\aSSETS\sample3.png");
请帮忙。谢谢