Кто знает, что такое "бикубическая интерполяция"?
Использования бикубической интерполяции
Если вы имеете набор трехмерных данных (x, y, z), вам необходимо заполнить ими структуру doublexyz. Для корректной работы стурктуру необходимо заполнять отсортированными по x, y данными. После этого вызовите функцию void td_fillgrid() для получения аналогичной структуры с заданной вами плотностью данных.
void td_fillgrid(const doublexyz *inputarray, int icolumns, int irows, doublexyz *outputarray, int ocolumns, int orows)
inputarray массив точек используемых при интерполяции,
icolumns число колонок в массиве inputarray,
irows число строк inputarray,
outputarray массив точек куда будут сохранены интерполированные данные,
ocolumns число колонок в массиве outputarray,
orows число строк в массиве
вобщем, для таких как я - фигня какая-то
Бикубическая интерполяция есть математический метод обработки битового поля. Берется полигон (как правило - крадрат, как правило 8 на Cool . От центра квадрата в 6 сторон считаются градиенты. Считаются так: gradient:=корень кубический из (power(c,3)+power(ur,3))/2.
Так считается градиент от центра (с) до верхнего правого угла (ur). Если значение градиента (одного из градиентов) больше некоторого эпсилон, то квадрат смещается на пиксель вправо, и все повторяется. Цвет внутри квадрата, где все градиенты меньше эпсилон, считается однородным и рисуется квадрат этого самого цвета.