2011-03-04 70 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