При рендеринге огромных визуальных изображений в WPF визуальное изображение искажается и более искажается с увеличением координат.Я предполагаю, что это как-то связано с типами данных с плавающей запятой, используемыми в конвейере рендеринга, но я не совсем уверен.В любом случае, я ищу практическое решение для решения проблемы.
Чтобы продемонстрировать, о чем я говорю, я создал пример приложения, которое просто содержит собственный элемент управления, встроенный в ScrollViewer, который рисует синускривая.
Здесь вы можете видеть, что чертеж в порядке для двойных значений <= 2 ^ 24 (в данном случае значения горизонтальной координаты), но с этой точки на немискажается. </p>
Искажение усугубляется при 2 ^ 25, и поэтому искажение продолжает увеличиваться с каждым дополнительным битом, пока не будет нарисовано несколько вертикальных линий.* Из соображений производительности я просто рисую видимую часть графика, но из соображений компоновки я не могу «виртуализировать» элемент управления, который сделал бы эту проблему устаревшей.Единственное решение, которое я мог бы придумать, - нарисовать видимую часть графика в растровом изображении, а затем отобразить растровое изображение в соответствующей точке, но там у меня снова возникает проблема точности с большими значениями, поскольку я не могу точно разместить растровое изображениетам, где мне это нужно.
У кого-нибудь есть идеи, как это решить?