Я работаю над алгоритмом управления, который будет работать во встроенной системе.Мой язык программирования - C, и система будет довольно сильно ограничена в плане памяти и вычислительной мощности.
У меня есть несколько (порядка 10) опорных точек в трехмерном пространстве.Обычно они статичны, но время от времени меняются.Я хотел бы подогнать поверхность сплайна так, чтобы она проходила через все эти точки, а затем имела функцию, которая для данного входного вектора (x, z) возвращает расстояние y изплоскость y = 0 .
Я думаю, что это проблема, которая должна быть решена в двух частях: 1) некоторые новые коэффициенты будут рассчитываться при изменении контрольной точки и 2)коэффициенты включены в функцию, которая возвращает y для данного (x, z) .(Только 2 должно происходить «в реальном времени».)
Я немного исследовал в сети это, но мне трудно с математикой, и большая часть материала относится к компьютерной графике.Я даже не уверен, какой тип сплайна мне нужен;NURBS и Catmull-Rom оба кажутся актуальными.Наконец, что касается формы краев моего сплайна: поскольку мои входные векторы взяты из хорошо ограниченных показаний датчика, мне не очень важно, что делает сплайн за пределами этой границы.
Я был бы очень благодарен занекоторая помощь или указатели на соответствующий материал, и любые фрагменты псевдокода были бы очень признательны.