如何渐近填充不规则路径?如1/4圆环,急急急!!!!
本人将管道弯曲处做成Control,但是在矩形客户区内绘制不规则的path时无法实现好的效果,该path类似1/4圆环,要求圆环的边界圆弧为黑色,圆环中间为白色,实现渐进。尝试用以下代码实现,但效果不佳,且path中间有黑易做图域。哪位朋友有好的算法,请分享! 谢谢!--------------------编程问答--------------------
int min = Width > Height ? Height : Width;//min:控件width与Height中较小的一个。
GraphicsPath path = new GraphicsPath();
Rectangle rectMax=new Rectangle(0,0,min*2,min*2);
Rectangle rectMin=new Rectangle(min/2,min/2,min,min);
path.AddLine(new Point(0,min),new Point(min/2,min));
path.AddArc(rectMin, 180, 90);
path.AddLine(new Point(min, min / 2), new Point(min, 0));
path.AddArc(rectMax, 180, 90);
PathGradientBrush pgb = new PathGradientBrush(path);
pgb.CenterColor = Color.White;
pgb.SurroundColors = new Color[] { Color.Black };
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
e.Graphics.FillPath(pgb, path);
pgb.Dispose();
e.Graphics.DrawPath(Pens.Red, path);
就能看到你的路径不对了
把添加路径那几行改成下面的就可以了
path.AddLine(new Point(0, min - 1), new Point(min / 2, min - 1));--------------------编程问答--------------------
path.AddArc(rectMin, 180, 90);
path.AddLine(new Point(min, min / 2), new Point(min, 0));
path.AddArc(rectMax, 270, -90);
我说的可以了只是说PATH对了,并不代表效果已经是你希望那样的。
--------------------编程问答--------------------
补充:.NET技术 , C#