Пишу свой чарт (plot). Использую интерполяцию. Между полученными значениями необходимо закрасить все пиксели,т.е. пусть у нас имеется прямоугольная область
(высота
ширина), получил для координаты
значение
, для следующей координаты 2 получил значение 50, в итоге получается разрыв между пикселями. Или же ещё пример, рассмотрим случай когда данных меньше чем ширина холста (пикселей по x), для
получил значение 10, а для
получил значение 234. Как закрасить все пиксели между узлами без разрывов, т.е. чтобы пиксели шли непрерывной цепочкой. Вот для этого длину и хочу узнать, так же можно составить систему уравнений, где одно уравнение будет сплайн, а второе уравнение прямой
, где F - значение соседнего пикселя по высоте. Но опять же решать уравнение 3 степени это очень большие затраты. Третий вариант самый простой - эмпирический, известно, что сплайн Акимы имеет небольшие выбросы в точках "разрыва", поэтому можно рассчитать расстояние (прямую) между расчётными узлами и умножить на эмпирический коэффициент, ну скажем
( т.е. увеличим на 30 процентов), можно конечно рассчитать коэффициент кривизны и исходя из него корректировать эмпирический коэф. Склоняюсь к 3 варианту.
Можно конечно использовать, что то типа LineTo(), но получается не красиво, хочу реализовать свой антиалиасинг.
Расчётное выражение получил в матлабе и пытался упростить его с помощью соответствующих функций, но ничего путного не получилось.