Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用nurbs/geomdl查找三维b样条曲线上点的曲率中心_Python_Bspline_Nurbs - Fatal编程技术网

在python中使用nurbs/geomdl查找三维b样条曲线上点的曲率中心

在python中使用nurbs/geomdl查找三维b样条曲线上点的曲率中心,python,bspline,nurbs,Python,Bspline,Nurbs,我又一次陷入困境,所以请容忍我 我有一个B样条曲线(从Solidworks导入),可以用python中的geomdl进行分析。 从geomdl中,我可以提取样条曲线上任意给定点的一阶和二阶导数以及切线、法线和副法线向量 从那里,我可以计算出曲率,从第一和第二个导数 但是,我无法确定曲线的转弯方向 我想找到在BSP线上当前关注点曲率中心的点 我“认为”切向量和法向量都位于感兴趣的密切平面上。叉积将给出密切平面的法线。然而,我无法做到这一点 至少我需要知道曲线的弯曲方向。i、 e.CW或CCW 但是

我又一次陷入困境,所以请容忍我

我有一个B样条曲线(从Solidworks导入),可以用python中的geomdl进行分析。
从geomdl中,我可以提取样条曲线上任意给定点的一阶和二阶导数以及切线、法线和副法线向量

从那里,我可以计算出曲率,从第一和第二个导数

但是,我无法确定曲线的转弯方向

我想找到在BSP线上当前关注点曲率中心的点

我“认为”切向量和法向量都位于感兴趣的密切平面上。叉积将给出密切平面的法线。然而,我无法做到这一点

至少我需要知道曲线的弯曲方向。i、 e.CW或CCW

但是如果我有曲率中心的点,我会知道关于这个点的一切

这是正确的吗

重申问题:

给定一个点,该点处曲线的导数,以及切线、法线和副法线向量,如何找到曲率中心?

给定一条参数曲线C(t)以及第一和第二导数C’(t)和C”(t),可以找到曲率向量

K(t) = m1*C"(t) - m2*C'(t)
在哪里

从K(t),你可以找到曲率半径R(t)为


然后曲率中心是C(t)+R(t)。

谢谢你。你能验证我的数学吗?C(t)=[242.949044523.309432-193.332342]C'(t)=[-242.036209-1065.6032501037.828873]C'(t)=[-4426.44444466-0.274063-1090.593028]。我相信曲率中心在[-241.518674520.192740-309.517090]。但是我没有很好的方法来验证。再次感谢你。你已经救了我三次了。很高兴我能提供帮助。我根据你的数据进行了计算,结果与你的相同。验证你的代码的最好方法是使用一个精确的圆来测试,看看结果是否与圆的中心相同。你还需要检查r代码中的“零曲率”情况。
m1 = 1.0/||C'(t||^2 and m2 = m1*m1 * C'(t) \dot C"(t). 
R(t) = K(t)/||K(t)||^2