Сглаживание линейных графиков Zedgraph без «выпуклостей» - PullRequest
1 голос
/ 13 сентября 2008

Когда вы используете Zedgraph для линейных графиков и устанавливаете IsSmooth в true, линии хорошо изогнуты, вместо того, чтобы иметь жесткие углы / углы.

Хотя это выглядит намного лучше для большинства графиков - по моему скромному мнению - здесь есть небольшой улов. Алгоритм сглаживания заставляет линию немного «нырнуть» или «поднять», прежде чем идти вверх или вниз.

В большинстве случаев, если точки данных сами по себе гладкие, это не проблема, но если ваши точки данных идут, скажем, от 0 до 15, «погружение» заставляет линию идти под осью х, что делает ее как будто есть некоторые точки данных ниже нуля (что не так).

Как я могу это исправить (предпочтительно легко;)

Ответы [ 2 ]

3 голосов
/ 22 июля 2009

Нет простого ответа на это. Поддержание напряжения около нуля будет вашим самым простым решением.

ZedGraph использует параметр натяжения DrawCurve GDI для применения гладкости, которая, вероятно, является интерполяцией Эрмита. Вы можете попытаться реализовать собственную косинусную интерполяцию, которая сохранит локальные крайности из-за своей природы. Вы можете посмотреть на эту ссылку, чтобы понять, почему: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

РЕДАКТИРОВАТЬ: веб-сайт не работает. Вот кэшированная версия страницы: http://web.archive.org/web/20090920093601/http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

1 голос
/ 13 сентября 2008

Вы можете попытаться изменить свойство myCurve.Line.SmoothTension вверх или вниз и посмотреть, поможет ли это.

...