0
給定由一組點構成的2D多邊形,我正在通過多邊形的內部繪製陰影。通過孵化我的意思是均勻的空間線,全部在45度左右。孵化2D多邊形
我很難想辦法讓這個工作不會很慢,但是不得不檢查每個預測線是否與所有多邊形邊交叉。
有沒有人有任何想法如何處理這個,或任何現有的技術可能工作?
謝謝。
給定由一組點構成的2D多邊形,我正在通過多邊形的內部繪製陰影。通過孵化我的意思是均勻的空間線,全部在45度左右。孵化2D多邊形
我很難想辦法讓這個工作不會很慢,但是不得不檢查每個預測線是否與所有多邊形邊交叉。
有沒有人有任何想法如何處理這個,或任何現有的技術可能工作?
謝謝。
您可以使用FillPolygon和這樣的HatchBrush:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
//A using statement on the brush will make sure it is disposed.
using (var b1 = new HatchBrush(HatchStyle.ForwardDiagonal, Color.Red))
{
PointF[] points = methodThatReturnsPointsForAPolygon();
e.Graphics.FillPolygon(b1, points);
}
}
我應該更具體一點,對不起。實際的圖形是使用API(稱爲HOOPS)完成的。它具有所有常見的幾何形狀(線條,曲線,多邊形等),我認爲您需要使用一個孵化器,但不像上面提到的那樣。 – djcmm476 2014-10-09 13:46:55
你有沒有嘗試過使用'FillPolygon'使用'HatchBrush'的isntance作爲刷填充? HatchBrush有一個名爲'HatchStyle'的屬性,它有許多不同的樣式可用,例如'ForwardDiagonal',它從左上角到右下角繪製陰影線。 – 2014-10-08 14:56:22
看看這裏http://stackoverflow.com/a/25052821/2521214 – Spektre 2014-10-08 21:22:02