Есть задание: нарисовать кривую catmull-rom с помощью полинома n-го порядка.
На странице есть вариант реализации формулы, алгоритм Эйткена.
Код от источника
for (i = 0; i < N; i++){
P = 1;
for (j = 0; j < N; j++)
if (j != i) P = P*(t-ti[j])/(ti[i] - ti[j]);
}
Моя реализация на delphi c циклом для рисования, но без итоговой формулы.
while a <> 100 do begin
Inc( a );
for i:= 0 to Length( xArray ) do begin
p:=1;
for j:= 0 to Length(xArray) do begin
if j <> i then begin
p:= p+(a/100-yArray[j])/(yArray[i] - yArray[j]);
end
end
end;
xt:= //тут должна быть формула для расчёта координаты с применением полинома?
yt:= //тут должна быть формула для расчёта координаты с применением полинома?
chart1.SeriesList[1].AddXY(xt, yt);
end;
Как должна выглядеть формула для построения точек?
Чтобы получилась что-то похожее на зеленую линию