3阶贝塞尔曲线等距分割

  • 1、引言
  • 2、数学计算
  • 3、应用
  • 4、demo下载

1、引言

贝塞尔(bezier)曲线又称样条曲线,常用的有2阶跟3阶形式,3阶曲线最为常用,其公式(1)为:

P0/P1/P2/P3为其四个控制点,贝塞尔曲线基础知识站内有相当详细地讲解博文。沿t进行等分,做出的曲线如下图蓝色点所示:

生成的点在沿曲线线长方向上,并不是均匀的。本文意在解决这个问题,实现线长方向上均匀的效果,如下图所示:

2、数学计算

将(1)式展开,转换为关于t的方程得到(2)式:


则(2)式简化为(3)式:

将(3)式展开到X,Y方向则有:

根据第二类曲线线长积分公式(4):

(4)式经过计算后可简化为:

其中:
从0积分到1,得到L,即为3阶贝塞尔曲线的长度。将L分为N段,每次从0开始积分到L/N长度为止得到一个点,该点即为沿线长方向上一个等距划分点。至此,该问题转换为一个求定积分计算。
f(t)的原函数F(t)一般而言是不容易求出的,故采用数值积分的方法,求数值解。
求解定积分比较快速的方法是龙贝格公式,配合二分法或者切线法可以求得等分点对应的t值,最终实现等分效果。

3、应用

1、可以让物体沿着样条线做匀速运动,也可以扩展到3维空间
2、结合Bresenham插值,可以应用到XY轴的运动系统当中,例如激光切割,打标机,写字机等等
3、做电机的加减速控制曲线,相比S曲线、指数曲线更加灵活
4、拟合图形、曲线等
有其他应用的地方,可以在下方评论!

4、demo下载

写了一个简单的demo,需要的可以自行下载,地址:
https://download.csdn.net/download/LuDanTongXue/18844969

微信/QQ:pph846375164

3阶贝塞尔曲线沿线长等距分割方法相关推荐

  1. canvas贝塞尔曲线爱心_canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)

    写在最前 由于原生的Canvas最高只支持到三阶贝塞尔曲线,那么我想添加多个控制点怎么办呢?(即便大部分复杂曲线都可以用3阶贝塞尔来模拟)与此同时,关于贝塞尔控制点的位置我们很难非常直观的清楚到底将控 ...

  2. 【Android UI】贝塞尔曲线 ② ( 二阶贝塞尔曲线公式 | 三阶贝塞尔曲线及公式 | 高阶贝塞尔曲线 )

    文章目录 一.二阶贝塞尔曲线公式 二.三阶贝塞尔曲线 三.高阶贝塞尔曲线 贝塞尔曲线参考 : https://github.com/venshine/BezierMaker 一.二阶贝塞尔曲线公式 二 ...

  3. canvas实现高阶贝塞尔曲线

    写在最前 由于原生的Canvas最高只支持到三阶贝塞尔曲线,那么我想添加多个控制点怎么办呢?(即便大部分复杂曲线都可以用3阶贝塞尔来模拟)与此同时,关于贝塞尔控制点的位置我们很难非常直观的清楚到底将控 ...

  4. java实现的三阶贝塞尔曲线_n 阶贝塞尔曲线计算公式实现

    n 阶贝塞尔曲线计算公式实现 关于贝塞尔曲线是什么,可以用来做什么,这里就不再介绍,如果你还不了解,可以先去看看下面这篇文章:贝塞尔曲线扫盲 1. 效果参考 2. 思路解析 百度百科上给出的一般参数公 ...

  5. n 阶贝塞尔曲线计算公式实现

    n 阶贝塞尔曲线计算公式实现 关于贝塞尔曲线是什么,可以用来做什么,这里就不再介绍,如果你还不了解,可以先去看看下面这篇文章:贝塞尔曲线扫盲 1. 效果参考 2. 思路解析 百度百科上给出的一般参数公 ...

  6. n 阶贝塞尔曲线计算公式——Ts实现

    文章目录 1.什么是贝塞尔曲线 2.常见贝塞尔曲线 3.贝塞尔曲线通用公式 3.1.贝塞尔曲线通用公式 3.2.思路解析 3.3.实现方法 3.4.效果展示 3.5.Demo下载 4.结束语 1.什么 ...

  7. 用C语言绘制任意阶贝塞尔曲线(Bézier curve)

    计算机图形学中贝塞尔曲线的绘制.使用的开发软件及版本为VS2015,以及 EasyX库.实现动态演示贝塞尔曲线实现的过程,且阶次不限! 源代码获取方式:1.添加微信(微信号:my_12581)获取.2 ...

  8. js-三阶贝塞尔曲线计算公式

    /*** 三阶贝塞尔曲线* B(t) = P0 * (1-t)^3 + 3 * P1 * t * (1-t)^2 + 3 * P2 * t^2 * (1-t) + P3 * t^3, t ∈ [0,1 ...

  9. android 贝塞尔曲线_OpenGL 实践之贝塞尔曲线绘制

    说到贝塞尔曲线,大家肯定都不陌生,网上有很多关于介绍和理解贝塞尔曲线的优秀文章和动态图. 以下两个是比较经典的动图了. 二阶贝塞尔曲线: 三阶贝塞尔曲线: 由于在工作中经常要和贝塞尔曲线打交道,所以简 ...

最新文章

  1. Spring 整合 CXF
  2. vc获取网页内table
  3. 灰度图像--图像增强 Robert算子、Sobel算子
  4. viewmodel+livedata+binding 实现listview+adapter
  5. 安装Hbase(分布式)遇到一些问题及解决方法
  6. 公文字体字号标准2020_手把手教你写公文——红头文件的制作技巧
  7. java 父子线程 调用链_ZipKin原理学习--Zipkin多线程及线程池中追踪一致性问题解决...
  8. python必背语法_python常用语法合集
  9. mysql 多线程并行复制_【MySQL】开启并行复制
  10. 《程序员修炼之道》读后感02
  11. codeforces Roud499Div2 B和C
  12. 【JVM实战】JVM参数调优
  13. 网页飘窗效果,jsp页面飘窗浮窗,html飘窗浮窗,点叉号关闭飘窗
  14. Codeforces1196D2
  15. 服务器cpu型号E5,超强悍服务器CPU:Intel 18核心至强E5
  16. 计算机文件夹操作教案,文件文件和文件夹教案
  17. Java实现 LeetCode 109 有序链表转换二叉搜索树
  18. 【JVM学习-3.6】JVM运行时数据区--方法区
  19. 脚手架的这个好搭档 今天要重点来介绍下!
  20. Spark 第一讲 Scala安装配置

热门文章

  1. Cocos2d-x Lua Node与Node层级架构
  2. Linux kill -9 和 kill -15 的区别
  3. shellshock学习
  4. 略谈天若有情天亦老的下一句
  5. 2 宽度优先爬虫和带偏好的爬虫(2)
  6. 东华大学计算机学院软件工程,东华大学计算机科学与技术学院(专业学位)软件工程保研...
  7. 【转】如果你生在1993、94,那你一定会懂。
  8. 假设使用计算机进行售票其过程如下,2019年计算机考研:操作系统试题(十三)...
  9. 计算机考试每学期多少次,这是会计大学生每一学期必须经历的几次考试
  10. 跟我做,让Android封装MQTT连接阿里云平台!【开源】