3
我正尝试在visio中创建连接符号。我已经使用Graphics.Drawline
方法创建了这些连接器。但是我不知道如何让弯曲来平滑曲线,就像微软的visio一样。需要在行中创建圆角?
代码:
protected override void Render(Graphics gfx)
{
PointF[] pts = GetPathPoints();
gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
float x = (float)((pts[0].X + pts[1].X)/2 - 5);
float y = 0F;
PointF start = new PointF((float)(pts[0].X), (float)(pts[0].Y));
PointF end = new PointF((float)(pts[1].X), (float)(pts[1].Y));
PointF pt1 = new PointF((float)(start.X), (float)(start.Y-50));
PointF pt2 = new PointF((float)(end.X), (float)(end.Y - 50));
using (Pen pen = this.LineStyle.CreatePen())
{
gfx.DrawLine(pen, start, pt1);
gfx.DrawLine(pen, pt1, pt2);
gfx.DrawLine(pen, pt2, end);
}
}
请看到在下面的链接光滑弯曲连接器: http://en.wikipedia.org/wiki/File:BPMN-CollectVotes.jpg
我怎样才能在Visio绘制圆角线线是怎样的?
不知道如果有一个更简单的方法,有可能是,但遵守前面使用四分之一圆的弧形弯曲总是进行第一次尝试。 – Anton
您需要分离连接到同一个点(角落)的两条线端,将它们拉回20个像素(更多或更少),然后绘制连接这两条线端的弧线。没有其他办法。 – Cipi
学习者,你只需要先阅读这个:http://stackoverflow.com/questions/1805582/net-gdi-drawing-lines-with-rounded-corners –