Боюсь, что у меня ошибка в Winforms / GDI +. Я строю графический путь, состоящий из линии, а затем кривой. При некоторых уровнях масштабирования (применяя матрицу преобразования к графическому объекту) путь рисуется неправильно, см. Рисунок:
Проводя некоторое тестирование, я заметил, что если я применю Flatten()
к графическому пути, проблема исчезнет. Кажется, что кривые преобразуются в соединенные сегменты, и проблема исчезает (это код):
result.AddLine(sourcex, sourcey, sourcex, sourcey + sourceOffset);
result.AddArc(ellipseContainer, startAngle, sweepAngle);
result.Flatten(); // this line solves the issue!!
Я отладил приложение, и число точек в графическом контуре равно 9 без применения Flatten()
, а 53 - Flatten()
.
Мой вопрос Что вы думаете о производительности рисования с применением Flatten () к graphicsPaths? Как вы думаете, на это может повлиять это изменение?
Заранее спасибо.