贝塞尔曲线均匀插值算法
二次贝塞尔曲线公式为:

其中,P0、P1、P2分别为起始点、控制点、终点。
其对应的坐标公式为:

整理有:

由公式很容易可以得出这样一个结论:随着变量t线性变化,坐标x、y是非线性变化的。这将导致一个问题,我们在贝塞尔曲线上取点时,若想取得的点是“均匀”的,即点与点之间的距离要相等(点足够密时,可以近似为点与点之间的路径相等),即需要求出贝塞尔曲线段长度L关于t的关系函数,然后根据L来反求t,这样才能采样得到均匀的贝塞尔采样点。

下面开始求贝塞尔曲线长L关于t的关系函数。


同理,

对(6)(7)求导,有:

根据平面距离公式,此时速度大小:



对速度函数求积分,即得到贝塞尔曲线积分:

公式(12)即是二次贝塞尔曲线的长度函数。
再回到上述问题,若想要在贝塞尔曲线上均匀取点,即保持L(t)为一个固定值D,令L(t)-D=0,求出t,再将t代入B(t)中(即公式(1)),即可求得间距D时的坐标(x,y)。

根据L(t)-D=0求t的方法----牛顿迭代法:
设r是f(x)的根,选取x0作为r的初始近似值,则有:

只要选取的x0在r的邻近区域内,那么牛顿法必定收敛。 并且,如果不为0, 那么牛顿法将具有平方收敛的性能。因此,只要经过一定的迭代次数,所求xn在一定精度内满足我们需求。

贝塞尔曲线均匀插值算法相关推荐

  1. android沿曲线移动,Android动画学习Demo(3) 沿着贝塞尔曲线移动的Property Animation

    Property Animation中最重要,最基础的一个类就是ValueAnimator了.Property Animation利用ValueAnimator来跟踪记录对象属性已经变化了多长时间及当 ...

  2. 如何求出二次贝塞尔曲线上面的各个点呢

    1.需求:用 canvas 在上面的曲线上面加几个箭头,指明方向 2.问题:这个曲线我是第一次见,搞半天还发现不是圆的弧,是一种很奇怪的弧形,于是我就上网查 quadraticCurveTo 方法,才 ...

  3. Android 贝塞尔曲线实战之网易云音乐鲸云特效,apm性能监控系统

    小说阅读 APP 的翻页效果. 简介 ===================================================================== 在开始实战之前,我们还 ...

  4. Android 贝塞尔曲线实战之网易云音乐鲸云特效

    作者:哈哈将 -个推 Android 高级开发工程师 前言 APP开发市场已经告别"野蛮生长"时代,人们不再满足于APP外形创新,而将目光转向全方面的用户体验上.在这过程中,动效化 ...

  5. 样条曲线(下)之插值问题(贝塞尔曲线、B样条和一般样条曲线插值)

    贝塞尔曲线插值与B样条插值 前言: 这篇是"样条曲线"的接续,前面主要集中在了理论部分,这篇文章主要内容是贝塞尔曲线与B样条是如何应用到插值中的. 前篇:样条曲线 文章目录 贝塞尔 ...

  6. 贝塞尔曲线与B样条曲线

    文章目录 0.参考 1.问题起源与插值法的曲线拟合 1.1.问题起源 1.2.拉格朗日插值 1.3."基"的概念 1.4.插值存在的Runge现象 2.贝塞尔曲线 2.1.控制点的 ...

  7. Android Studio Canvas 实现鼠标贝塞尔曲线拖尾特效

    Android Studio Canvas 实现鼠标贝塞尔曲线拖尾特效 特效预览图 什么是贝塞尔曲线? 百度百科: ​ 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图 ...

  8. Android Studio Canvas 实现鼠标贝塞尔曲线拖尾特效(富文本编辑器)

    特效预览图 什么是贝塞尔曲线? 百度百科: 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段 ...

  9. 前端动画之贝塞尔曲线推导及应用

    hello,大家好,今天豆皮范儿给大家带来了贝塞尔曲线推导和应用,优美的贝塞尔曲线想起了大学时候老师在给我们讲如何实现,如何推导,如何实现和应用.本来也来详细介绍一下,纯纯的干货- 作者:lff 生活 ...

  10. 贝塞尔曲线,B-样条,非均匀有理B样条梳理

    文章目录 1. 贝塞尔曲线(Bézier curve) 1.1 一阶贝塞尔曲线 1.2 二阶贝塞尔曲线.高阶贝塞尔曲线 1.3 贝塞尔曲线的一般形式 1.4 贝塞尔曲线的性质 1.5 贝塞尔曲线在运动 ...

最新文章

  1. 使用Boost的Serialization库序列化STL标准容器
  2. 提升系统 10 倍性能的 10 个建议!
  3. 《精益软件度量——实践者的观察与思考》—第1章1.1节精益软件开发的度量体系...
  4. 如何利用MySQL加密函数保护Web网站敏感数据
  5. 生成静态页面的五种方案 收藏
  6. php retoken,laravel 5.5 关闭token的3种实现方式
  7. linux中线程ptid,Linux 线程(1)线程创建
  8. 计算器 - 栈的应用
  9. Maven学习(1) - Maven入门
  10. 逆天!百度AI音箱重磅升级:最大梦想实现
  11. linux 945gse 显卡驱动,HP520的945Expres集成显卡只能以1024x768的模式显示的求助
  12. Word中有些空行无法删除,我是这样解决的.............
  13. 车企围攻整车OS,这张“新王牌”怎么打?
  14. hadoop学习步骤
  15. Under the hood: MySQL Pool Scanner (MPS)
  16. CERC2014 Outer spaceinvaders(区间DP,推理)
  17. 幅值测量c语言程序,幅值和电平测量程序块
  18. 0基础都能看懂的SpringCloud,不容错过!
  19. 主成分分析,聚类分析,因子分析的基本思想以及他们各自的优缺点
  20. android好看的配色方案,APP界面常用的五种颜色搭配

热门文章

  1. LeapFTP访问WinXP上的文件
  2. O2O电子商务 营销模式
  3. pygame 绘制爱心函数 r = 1-cos(θ). Tag: python | 图形界面 | GUI
  4. Cropper详细笔记
  5. Gradle教程——(二)Gradle介绍
  6. [CGAL] CGAL各模块介绍
  7. Oracle查询被锁表和解锁方法
  8. Mybatis整合达梦数据库
  9. 腾讯云推出“版权音乐助手”让音乐版权使用“按量付费“
  10. ant design pro 水印(删除、修改)