我目前將XY數據繪製在畫布上並用它繪製曲線。到目前爲止,它很簡單,適用於細線,但是當我增加厚度時,由於如何繪製線條以形成曲線,會出現奇特的效果。WPF c#使用線條或替代方法繪製粗曲線
我附上了一個示例圖像,它顯示了一條很好的平滑線條,當線條很細時,效果很好。但是當線條較粗時,您顯然可以看到問題。
有沒有辦法將這些端點連接起來製作出一個很好的流暢線條?
如果沒有,是否有另一個繪圖工具可用於創建漂亮的線條?
我對實現不滿意,因爲很快,canvas上的數百甚至數千行對象變得混亂。這似乎是一個可怕的方式,但我還沒有找到更好的方法。我寧願選擇另一條創建單個曲線對象的路線。
任何幫助一如既往的讚賞。
謝謝!
Point previousPoint;
public void DrawLineToBox(DrawLineAction theDrawAction, Point drawPoint)
{
Line myLine = new Line();
myLine.Stroke = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
myLine.StrokeThickness = 29;
if(theDrawAction == DrawLineAction.KeepDrawing)
{
myLine.X1 = previousPoint.X; //draw from this point
myLine.Y1 = previousPoint.Y;
}
else if(theDrawAction == DrawLineAction.StartDrawing)
{
myLine.X1 = drawPoint.X; //draw from same point
myLine.Y1 = drawPoint.Y;
}
myLine.X2 = drawPoint.X; //draw to this point
myLine.Y2 = drawPoint.Y;
canvasToDrawOn.Children.Add(myLine); //add to canvas
previousPoint.X = drawPoint.X; //set current point as last point
previousPoint.Y = drawPoint.Y;
}
我認爲將位置追加到Path對象會更好 - 它被渲染爲一個連續的對象並支持筆劃厚度。 – kidshaw 2014-08-29 19:44:16
您是否嘗試過使用折線?每次只需在Points集合中添加一個新的Point? – SuperOli 2014-08-29 19:53:36
您應該肯定使用Polyline,並且還可以設置其[StrokeLineJoin](http://msdn.microsoft.com/zh-cn/library/system.windows.shapes.shapes.shape.strokelinejoin.aspx)屬性。 – Clemens 2014-08-30 05:48:32