2011-03-04 81 views
2

恐怕我遇到了Winforms/GDI +中的一個錯誤。我正在構建一條由一條線然後一條曲線組成的圖形路徑。在某些縮放級別(應用變換矩陣的圖形對象)的路徑被錯誤地繪製,看到的景象:GraphicsPath.Flatten()如何影響繪圖性能?

enter image description here

做一些測試,我發現,如果我申請Flatten()到圖形路徑,問題自敗。似乎曲線轉換爲連接的片斷,並且該問題自敗(這是代碼):

result.AddLine(sourcex, sourcey, sourcex, sourcey + sourceOffset); 
result.AddArc(ellipseContainer, startAngle, sweepAngle); 
result.Flatten(); // this line solves the issue!! 

我已調試的應用程序和點的圖形的路徑,而不適用Flatten()數爲9,和53申請Flatten()

我的問題是。你認爲繪製使用Flatten()到graphicsPaths的性能怎麼樣?你認爲這可能會受到這種變化的影響嗎?

在此先感謝。

+0

這很可能是你正在運行到在高放大倍率的精度問題的折線。 – Gabe 2011-03-04 13:56:05

回答

1

如果您希望將線路上加入了,你應該借鑑它使用AddLines

+0

你是什麼意思?創建線條和曲線,然後使用AddLines將所有點添加到路徑中?你能提供一個代碼示例嗎? – 2011-03-04 14:00:02