GraphicsPath gp = new GraphicsPath();
gp.AddRectangle(new Rectangle(1,1,10,20));
RectangleF pathBounds = gp.GetBounds();
Matrix m = new Matrix();
int rotation=30;
m.RotateAt(rotation, new PointF(pathBounds.Left + (pathBounds.Width / 2), pathBounds.Top + (pathBounds.Height / 2)), MatrixOrder.Append);
gp.Transform(m);
m.TransformPoints(PointsConnection);
大致是这样的