Daniel Peñalba
Daniel Peñalba

Reputation: 31897

How does GraphicsPath.Flatten() affects to the drawing performance?

I'm afraid that I'm experiencing a bug in Winforms/GDI+. I'm building a graphics path composed by a line and then a curve. At some zoom levels (applying a transform matrix to the graphics object) the path is wrongly drawn, see the picture:

enter image description here

Doing some testing I noticed that if I apply Flatten() to the graphics path, the problem dissapears. It seems that the curves are converted to connected segments, and the problem dissapears (this is the code):

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

I have debugged the application and the number of points in the graphics path is 9 without apply Flatten(), and 53 applying Flatten().

My question is. What do you think about drawing performance applying Flatten() to graphicsPaths? Do you think that could be affected by this change?

Thanks in advance.

Upvotes: 3

Views: 1405

Answers (1)

erikkallen
erikkallen

Reputation: 34421

If you want the line to be joined, you should draw it as a polyline using AddLines

Upvotes: 2

Related Questions