我想在 3D b 样条上找到给定点的曲率。我相信我想在该点使用样条的导数来计算该点的曲率,但我不明白如何。
我在 geomdl 中定义了一个 3D bspline(取自 SolidWorks(它的来源不相关))。我可以使用 Curve.evaluate_single() 评估样条曲线上的任何点。这似乎工作正常。我已经根据 SolidWorks 模型验证了返回的点,所以我假设我已经在 nurbs 中正确实施了 bspline。
我需要找到沿着这条曲线的各个点的半径。从我的谷歌搜索中,我认为我想使用 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 个点的圆的半径)
我不明白 Curve.derivatives() 的结果告诉我什么。(第一个元组是点的坐标,超出了我就迷路了)
我预计这个特定点的半径约为 409。
我的基本问题是两个部分:
结果告诉我什么。他们的意思是什么。
我如何使用这些结果来计算此时的半径。