2014-10-08 69 views
0

給定由一組點構成的2D多邊形,我正在通過多邊形的內部繪製陰影。通過孵化我的意思是均勻的空間線,全部在45度左右。孵化2D多邊形

我很難想辦法讓這個工作不會很慢,但是不得不檢查每個預測線是否與所有多邊形邊交叉。

有沒有人有任何想法如何處理這個,或任何現有的技術可能工作?

謝謝。

+0

你有沒有嘗試過使用'FillPolygon'使用'HatchBrush'的isntance作爲刷填充? HatchBrush有一個名爲'HatchStyle'的屬性,它有許多不同的樣式可用,例如'ForwardDiagonal',它從左上角到右下角繪製陰影線。 – 2014-10-08 14:56:22

+0

看看這裏http://stackoverflow.com/a/25052821/2521214 – Spektre 2014-10-08 21:22:02

回答

1

您可以使用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); 
    } 
} 
+0

我應該更具體一點,對不起。實際的圖形是使用API​​(稱爲HOOPS)完成的。它具有所有常見的幾何形狀(線條,曲線,多邊形等),我認爲您需要使用一個孵化器,但不像上面提到的那樣。 – djcmm476 2014-10-09 13:46:55