Python中曲率与弯曲的转换_python – numpy中的曲线曲率

编辑:我把这个答案放在一起几个小时,所以我错过了你最新的编辑,表明你只需要曲率.希望这个答案无论如何都会有所帮助.

除了做一些曲线拟合,我们的近似导数的方法是通过finite differences.谢天谢地,numpy有一个gradient方法为我们做这些差异计算,负责平均每个内点的前一个和下一个斜率的平均细节,并留下每个仅端点等

import numpy as np

a = np.array([ [ 0. , 0. ],[ 0.3 , 0. ],[ 1.25, -0.1 ],

[ 2.1 , -0.9 ],[ 2.85, -2.3 ],[ 3.8 , -3.95],

[ 5. , -5.75],[ 6.4 , -7.8 ],[ 8.05, -9.9 ],

[ 9.9 , -11.6 ],[ 12.05, -12.85],[ 14.25, -13.7 ],

[ 16.5 , -13.8 ],[ 19.25, -13.35],[ 21.3 , -12.2 ],

[ 22.8 , -10.5 ],[ 23.55, -8.15],[ 22.95, -6.1 ],

[ 21.35, -3.95],[ 19.1 , -1.9 ]])

现在,我们计算每个变量的导数并将它们放在一起(出于某种原因,如果我们只调用np.gradient(a),我们得到一个数组列表……不确定我的头顶是什么发生在那里,但我现在只是解决它):

dx_dt = np.gradient(a[:, 0])

dy_dt = np.gradient(a[:, 1])

velocity = np.array([ [dx_dt[i], dy_dt[i]] for i in range(dx_dt.size)])

这为我们提供了以下速度向量:

array([[ 0.3 , 0. ],

[ 0.6

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值