0
我想在.NET中使用實線箭頭CustomLineCap繪製一條線,但與線相交的帽的部分未填充。我嘗試將cap的路徑中的所有Y座標設置爲非負數,但CustomLineCap構造函數拋出了「未實現」異常;顯然,帽必須與負線Y軸(即線本身)相交,而不是在線的端點處。.NET - 我如何使一個填充的CustomLineCap不會不填充線重疊?
這裏是我使用用於CustomLineCap的代碼:
GraphicsPath ArrowCapPath = new GraphicsPath();
ArrowCapPath.AddLine(new Point(0, 4), new Point(2, -1));
ArrowCapPath.AddLine(new Point(2, -1), new Point(-2, -1));
ArrowCapPath.AddLine(new Point(-2, -1), new Point(0, 4));
CustomLineCap ArrowCap = new CustomLineCap(ArrowCapPath, null);
的「箭頭」是具有高度5和寬度4.線三角形本身變爲1落入該三角形,而且這是在部分沒有填充。
如何獲得整個瓶蓋?
https://msdn.microsoft.com/zh-cn/library/system.drawing.drawing2d.customlinecap(v=vs.110).aspx上的MSDN示例沒有任何負面的座標。 –
它可能與您的要點在箭頭周圍(順時針/逆時針)所採用的「方向」有關。 MSDN表示,結尾大小總是使用'Winding'填充模式來確定形狀內部的內容。你可以嘗試顛倒點的方向。由於它看起來像整條線被繪製爲一條合併路徑,任何交叉點都會導致填充問題。我懷疑你將能夠使用消極的協調,並表現出理智。請參閱https://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.fillmode(v=vs.110).aspx –
布拉德利 - 示例是針對鉤形開放線,而不是需要填補。 但是,您的建議改變了工作線的方向;當我改變了X值的符號時,箭頭現在被正確填充。 –