Я хотел бы найти кривизну в заданной точке трехмерного b-сплайна.Я считаю, что я хочу использовать производные сплайна в этой точке, чтобы вычислить кривизну в этой точке, но я не понимаю, как.
Я определил трехмерную линию bspline (взятую из SolidWorks (откуда она взялась)не актуально)) в геомдл.Я могу оценить любую точку на сплайне, используя Curve.evaluate_single ().Похоже, это работает правильно.Я проверил возвращенные точки по модели SolidWorks, поэтому я предполагаю, что правильно реализовал bspline в nurbs.
Мне нужно найти радиус в различных точках вдоль этой кривой.Из моего поиска в Google я думаю, что хочу использовать Curve.derivatives (), чтобы вычислить мгновенную кривизну в этой точке.Но я не понимаю, как получить результаты Curve.derivatives () в радиус.
Итак, ниже приведен результат Curve.derivatives (SomePointOnPath, 4):
[ [74.66019681782404, 131.77035668055586, 19.88498274391211],
[-2719.7097781710354, -598.8099790539873, -711.5032638750225],
[-5384.519486543373, 1273.8662545231637, 19431.220551950217],
[93757.48746982217, -22247.397114396095, 31343.52746776864],
[0.0, 0.0, 0.0]]
Делая точки маленьким шагом по обе стороны от этой точки, я вычислил радиус в этой точке, чтобы он был около 409 (решение для радиуса круга с учетом 3 точек)
Я не понимаю, каковы результаты кривой.производные () говорят мне.(первый кортеж - это координаты точки, за которой я теряюсь)
Я ожидаю, что радиус в этой конкретной точке будет около 409.
Мой фундаментальный вопрос состоит из двух частей:
Какие результаты говорят мне.Что они означают.
Как использовать эти результаты для расчета радиуса в этой точке.