Растеризация кубического многочлена

Учитывая кубический полином, оцененный с использованием регрессии наименьших квадратов, меня интересует простой алгоритм, который растрирует кривую для отображения на изображении. Моя первоначальная интуиция заключалась в том, чтобы сэмплировать кривую для каждого целочисленного значения x, но это оставляет пробелы в областях с большим наклоном. Поскольку у куба могут быть области произвольно высокого наклона, дальнейшее увеличение частоты дискретизации будет только временной мерой.

Как профессиональные графические инструменты, такие как Matlab и Gnuplot, решают эту проблему? Существуют ли какие-либо «достаточно хорошие» приближения, подходящие для приложений реального времени?


person Michael Koval    schedule 11.01.2011    source источник


Ответы (1)


Вы можете начать с рисования линии между точками, но она не будет выглядеть гладкой.

Более привлекательным решением было бы выполнить суперсэмплинг в измерении x, нарисовать линию с толщиной вдоль этого измерения, а затем выполнить субдискретизацию до масштаба, который вы хотите отобразить.

person Mark Ransom    schedule 11.01.2011
comment
Суперсэмплинг определенно улучшит точность рендеринга, но фундаментальная проблема все еще существует. Например, почти вертикальная линия потребовала бы неограниченного количества выборок для представления. Возможно, есть способ перепараметрировать куб, чтобы это не было проблемой? - person Michael Koval; 12.01.2011
comment
Соедините точки линиями, а не просто рисуйте отдельные точки. Вот как работает хранитель экрана (кубических) сплайнов. - person phkahler; 12.01.2011