2011-09-08 29 views
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繪製圓角線線是怎樣的?

+0

不知道如果有一個更簡單的方法,有可能是,但遵守前面使用四分之一圓的弧形彎曲總是進行第一次嘗試。 – Anton

+1

您需要分離連接到同一個點(角落)的兩條線端,將它們拉回20個像素(更多或更少),然後繪製連接這兩條線端的弧線。沒有其他辦法。 – Cipi

+0

學習者,你只需要先閱讀這個:http://stackoverflow.com/questions/1805582/net-gdi-drawing-lines-with-rounded-corners –

回答