У меня есть класс, который представляет 2D-кривую Nurbs
класс Nurbs2D {...};
Членами данных являются контрольные точки (std :: vector of Point2D), вектор узла (std :: vector of double), веса (std :: vector of double), степень (подразумевается на основе количества контрольных точек и узла вектор)
API: я могу построить кривую, параметризованную между t0 и t1. Я также могу вычислить Point2D с заданным параметром t (t0 <= t <= t1). </p>
Учитывая параметр ti, я хочу оценить следующий параметр ti + 1, чтобы расстояние по кривой от ti до ti + 1 было равно Di (учитывая Di в пределах допуска dt). Требуются две функции: одна для вычисления длины от ti до ti + 1, а другая для оценки ti + 1 с учетом ti, Di и dt.
Код на C ++ будет действительно полезен. Я рассчитываю на скорость, а не на точность, так как допуск настройки dt приведёт результаты в соответствие.