我使用以下代码绘制Polygon:
Graphics surface;
surface = this.CreateGraphics();
SolidBrush brush = new SolidBrush(Color.Olive);
Point[] points = { new Point(50, 50), new Point(250, 50), new Point(50, 250) };
surface.FillPolygon(brush, points);
如何调整多边形的大小类似于以下内容?
答案 0 :(得分:3)
试试这个:
var g = e.Graphics;
var points=new PointF[] { new PointF(0, 0), new PointF(1, 0), new PointF(0, 1) };
var mx=g.Transform.Clone();
g.TranslateTransform(100f, 100f);
g.ScaleTransform(40f, 40f);
g.FillPolygon(Brushes.Olive, points);
g.Transform=mx;
g.TranslateTransform(300f, 100f);
g.ScaleTransform(80f, 80f);
g.FillPolygon(Brushes.MediumOrchid, points);
g.Transform=mx;
在不同位置绘制相同形状的多边形。
(由我添加的红色注释)
答案 1 :(得分:2)
你有几个选择。一个简单而相当愚蠢的解决方案是使用linq:
double resizeValue = 1.5;
points.Select(x => new Point(x.X*resizeValue, x.Y*resizeValue);
我认为这种方式很容易理解。可能是更好的方法,但如果这就是你所做的一切,那就足够了。