曲率计算公式

设参数曲线C(u):
C(u)=(x(u),y(y),z(u))C(u) = (x(u),y(y),z(u)) C(u)=(x(u),y(y),z(u))

曲线曲率表达为:
k(u)=∣C′(u)×C′′(u)∣∣C′(u)∣3(1)k(u)=\frac{|C^{'}(u)\times C^{''}(u)|}{|C^{'}(u)|^3}\quad (1) k(u)=∣C′(u)∣3∣C′(u)×C′′(u)∣​(1)

其中:
C′(u)为一阶导数C′′(u)为二阶导数C′(u)×C′′(u)为一阶导数和二阶导数的叉乘\begin{aligned} &C^{'}(u) 为一阶导数 \\ &C^{''}(u) 为二阶导数 \\ &C^{'}(u)\times C^{''}(u) 为一阶导数和二阶导数的叉乘 \\ \end{aligned} ​C′(u)为一阶导数C′′(u)为二阶导数C′(u)×C′′(u)为一阶导数和二阶导数的叉乘​

叉乘公式

设置两个向量:
一阶导数:a=(x1,y1,z1)二阶导数:b=(x2,y2,z2)a×b=∣ijkx1y1z1x2y2z2∣=(x3,y3,z3)=(2)=(y1z2−y2z1)i−(x1z2−x2z1)j+(x1y2−x2y1)k![\begin{aligned} 一阶导数:&\mathbf{a}=(x_1,y_1,z_1)\\ 二阶导数:&\mathbf{b}=(x_2,y_2,z_2)\\ &\mathbf{a}\times \mathbf{b}=\left| \begin{matrix} i & j & k\\ x_1 & y_1 & z_1\\ x_2 & y_2 & z_2\\ \end{matrix} \right|=(x_3,y_3,z_3)=\quad \quad \quad (2)\\ &\quad \quad \quad= (y_1z_2-y_2z_1)i-(x_1z_2-x_2z_1)j+(x_1y_2-x_2y_1)k![ \end{aligned} 一阶导数:二阶导数:​a=(x1​,y1​,z1​)b=(x2​,y2​,z2​)a×b=∣∣∣∣∣∣​ix1​x2​​jy1​y2​​kz1​z2​​∣∣∣∣∣∣​=(x3​,y3​,z3​)=(2)=(y1​z2​−y2​z1​)i−(x1​z2​−x2​z1​)j+(x1​y2​−x2​y1​)k![​

3-D曲线曲率计算

计算三次样条曲线曲率:
C′(u)=(x1,y1,z1)C′′(u)=(x2,y2,z2)∣C′(u)∣=x12+y12+z12由公式(2)得:∣C′(u)×C′′(u)∣=x32+y32+z32\begin{aligned} &C^{'}(u)=(x_1,y_1,z_1)\\ &C^{''}(u)=(x_2,y_2,z_2)\\ &|C^{'}(u)|=\sqrt{x^2_1+y^2_1+z^2_1}\\ \\ &由公式(2)得:\\ &|C^{'}(u)\times C^{''}(u)|=\sqrt{x^2_3+y^2_3+z^2_3}\\ \end{aligned} ​C′(u)=(x1​,y1​,z1​)C′′(u)=(x2​,y2​,z2​)∣C′(u)∣=x12​+y12​+z12​​由公式(2)得:∣C′(u)×C′′(u)∣=x32​+y32​+z32​​​

2-D曲线曲率计算

2-D曲线的曲率计算时,依然可以使用前文使用的公式,此时,设置z坐标值为0即可:
a=(x1,y1,0)b=(x2,y2,0)a×b=∣ijkx1y10x2y20∣=(x3,y3,z3)=(3)=0i−0j+(x1y2−x2y1)k则:∣C′(u)×C′′(u)∣=(x1y2−x2y1)2(4)\begin{aligned} &\mathbf{a}=(x_1,y_1,0)\\ &\mathbf{b}=(x_2,y_2,0)\\ &\mathbf{a}\times \mathbf{b}=\left| \begin{matrix} i & j & k\\ x_1 & y_1 & 0\\ x_2 & y_2 & 0\\ \end{matrix} \right|=(x_3,y_3,z_3)=\quad \quad \quad (3)\\ \\ &\quad \quad \quad= 0i-0j+(x_1y_2-x_2y_1)k\\ 则:\\ &|C^{'}(u)\times C^{''}(u)|=\sqrt{(x_1y_2-x_2y_1)^2}\quad \quad (4)\\ \end{aligned} 则:​a=(x1​,y1​,0)b=(x2​,y2​,0)a×b=∣∣∣∣∣∣​ix1​x2​​jy1​y2​​k00​∣∣∣∣∣∣​=(x3​,y3​,z3​)=(3)=0i−0j+(x1​y2​−x2​y1​)k∣C′(u)×C′′(u)∣=(x1​y2​−x2​y1​)2​(4)​
现在考虑参数方程:
C(u)={x(u),y(u)C(u)= \begin{cases} x(u),\\ y(u) \end{cases} C(u)={x(u),y(u)​
由高等数学知识得到:
K=∣x′(u)y′′(u)−x′′(u)y′(u)∣∣x′2(u)+y′2(u)∣32变量带入分子即为:(x1y2−x2y1)2,与公式(3)(4)得到的结果一致.K=\frac{|x^{'}(u)y^{''}(u)-x^{''}(u)y^{'}(u)|}{|x^{'2}(u)+y^{'2}(u)|^{\frac{3}{2}}}\\ \\ \\ \\ 变量带入分子即为:\sqrt{(x_1y_2-x_2y_1)^2},与公式(3)(4)得到的结果一致.\\ K=∣x′2(u)+y′2(u)∣23​∣x′(u)y′′(u)−x′′(u)y′(u)∣​变量带入分子即为:(x1​y2​−x2​y1​)2​,与公式(3)(4)得到的结果一致.

数学就是这么奇妙啊!!!

方法验证–3次B-Spline曲线

n = 12 #n+1个控制点
p = 3  #3次yB-Spline曲线
m = n+p+1 #m+1个参数节点
knots = [0,0,0,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1,1,1]
x = [1,2,3,4,5,6,7,8,9,10,11,12,13]  #控制点坐标
y = [1,1,1,1,1,2,1,1,1,1,1,1,1]

结果如下:

样条曲线(参数曲线)曲率相关推荐

  1. 自动驾驶——Smooth Local Planning

    7.1参数曲线 在本模块中,我们将讨论分层运动规划器的最低级别,即局部规划器.作为提醒,局部规划器是分层规划器的一部分,它以无碰撞.高效和舒适的方式执行行为规划器所要求的机动.这导致轨迹,即在给定时间 ...

  2. 《中国人工智能系列白皮书——智能驾驶》精编

    [转] https://www.leiphone.com/news/201710/x7tHyZS8lsohsatP.html 10月12日,中国人工智能学会发布中国人工智能系列白皮书,雷锋网作为邀请媒 ...

  3. 跟着东木学:UG_NX视频教程大纲,在这里你可以学到...

    Siemens NX 1. UG_NX教程第一季(零基础入门篇) 知识篇 界面认识 用户设置 首选项设置 文件操作 导入导出 零件显示模式 零件选择模式 坐标系的用法 图层的用法 常用工具 截面观察工 ...

  4. 学习笔记11--局部轨迹直接构造法

    本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...

  5. matlabB样条曲线求导求曲率

    原文:http://www.matlabsky.com/thread-665-1-1.html function result = BspCurv( C,U,t,k) % %CURVATURE B样条 ...

  6. 【论文阅读】NEF:用于从多视图重建 3D 参数曲线的神经边缘场

    [论文阅读]NEF:用于从多视图重建 3D 参数曲线的神经边缘场 摘要 一.引言 二.相关工作 三.方法 3.1 重建 3D 边缘点 3.1.1 预备知识 3.1.2 神经边缘场 3.1.3 训练 N ...

  7. 计算机图形什么叫参数连续性,计算机图形学--参数三次插值样条曲线.ppt

    计算机图形学--参数三次插值样条曲线 参数三次插值样条曲线 三次多项式方程是能表示曲线段的端点通过特定点且在连接处保持位置和斜率的连续性的最低阶次的方程.与更高次的多项式方程相比,三次样条只需要较少的 ...

  8. b样条和三次样条_样条曲线

    最近在学习轨迹规划中的轨迹生成,涉及到样条曲线方面的知识,总结一下. 二次样条 三次样条 曲线平滑 曲线的平滑性和相应的平滑性的评判准则相关,在[1]中,作者采用曲率的平方和曲率导数的平方作为评判准则 ...

  9. 光滑曲线_微分几何笔记(4) —— 二维三维空间中曲线的曲率以及环绕数

     本篇文章我们从一般化的 空间回到我们生活的 空间,看看低维空间中的曲线有哪些性质,主要计算下在非弧长参数下的曲线,曲率挠率的一般表达式. 最后引入环绕数的概念,讲讲怎么数曲线转了多少圈. 4.1 ...

  10. Spline导数及曲率计算

    0 前言 曲率的公式为: 因此求曲率的重点在于获得拟合曲线的一阶导数和二阶导数. 1 实例1 根据参考资料[5]的提示,可以使用csape()对离散点进行Spline插值,然后使用fnder()对得到 ...

最新文章

  1. 开放神经网络交换(ONNX)工具
  2. C语言程序设计 细节总结(第1-7章)
  3. transition属性值
  4. SqlServer int型转varchar型 出现*号
  5. C++学习之路 | PTA乙级—— 1027 打印沙漏 (20 分)(精简)
  6. php中对象传值方式,php实现对象传值方式的具体案例
  7. 数据:BTC全网算力为146.06 EH/s,新增地址数51.19万
  8. sublime自动保存(失去焦点自动保存)
  9. 性能测试--jmeter中使用jsonpath提取响应结果【17】
  10. 反转字符串 不同方式
  11. mp2551总线收发器芯片作用_什么是现场总线,为什么需要隔离处理?
  12. LoadRunner压力测试实例
  13. Spring注解原理的详细剖析与实现
  14. iphone震动反馈怎么设置,怎么设置开启苹果手机ios12打字时的震动反馈
  15. Unity3D使用talkingData应用数据统计
  16. 国开教育学形考任务2试题1试题及答案
  17. JS修改标签的css样式
  18. Python输出菱形图案
  19. 解决双系统开机no such device:
  20. webgl中解决深度冲突-多边形偏移

热门文章

  1. 空调开关html,酒店墙上空调开关图解—酒店墙上空调开关图案是什么意思
  2. 【手记】解决Intel Management Engine Interface黄色感叹号
  3. python怎么做成app_自己怎么做App软件 自己制作APP教程
  4. java JDK的下载与安装 JVM JRE JDK区别
  5. php7.3手册_php7.3.8手册下载
  6. 教你给视频添加马赛克的剪辑技巧,轻松简单
  7. 三菱伺服驱动器说明书_干货——PLC控制伺服系统(伺服电机)
  8. 微信小程序图片上传并预览
  9. Postman 设置环境变量 个人记录
  10. 曼昆 宏观经济学 笔记