贝塞尔曲线及Path对贝塞尔曲线的支持

参考文章:
百度百科:贝塞尔曲线
详解:贝塞尔曲线及其高阶贝塞尔曲线
贝塞尔曲线解释
Android:path对贝塞尔曲线的实现
贝塞尔曲线实现点赞效果
贝塞尔曲线实现书籍的翻页效果
腾讯云:贝塞尔曲线书籍仿真翻页

  1. 闲暇时间对贝塞尔曲线学习了解,有了一些浅薄的认识,现整理一下思路方便后续查阅,贝塞尔曲线来源数学计算公式及其讲解不再详述,百科和详解文章大神说的特别详尽清楚(大神太赞了,动图做的太好了),我就不显眼了(建议阅读上面文章后再浏览下面)。
  2. 针对大神解释和自己的实践对于贝塞尔曲线有了下面浅显的认识:
    • 贝塞尔曲线可以看做一个算法,但是其本质是用数学的方法绘制一条平滑的曲线,尽可能少的用点,二阶仅需要起点,终点,三阶贝塞尔曲线在起终两点基础上添加一个控制点,高阶类推,n阶贝塞尔曲线在起终点的基础上需要(n-2)个控制点。
    • 贝塞尔曲线原理:以二阶贝塞尔曲线为例:


      二阶贝塞尔曲线实例

      备注:根据给定的线段密集度(简单说ab线段分为多少段,每一段都是最小的单位)计算出df/de = ad/ab = be/bc的每一个点,将其串联起来组成的曲线被称为二阶贝塞尔曲线。

    • 三阶以及后面的多阶贝塞尔曲线和二阶贝塞尔曲线类似,针对线段密集度逐层(最外层-内层串联-最内层)寻找等比点,最终将最内层的等比点串联起来就是三阶/高阶贝塞尔曲线。
    • 贝塞尔曲线不包含控制点,只是尽可能的接近控制点,所以若使得两点之间的曲线尽可能接近圆(线性)则尽可能多的提供控制点,提供两点间所有的控制点则绘制成圆了(提高线段的绘制点的密集度)。
    • 贝塞尔曲线公式:由上面原理可知,公式用于计算在给定线段密集度的每一个线段的等比点坐标,多阶和高阶是一个递归的过程。
    • 贝塞尔曲线借助于属性动画(0,1)和时间(动画时间和线段密集度)还有属性动画插值器可以实现很炫的效果,上面文章点赞爱心飘动就是贝塞尔曲线和属性动画相结合实现的。
    • path针对二阶和三阶贝塞尔曲线提供了api支持,在api中设置起终点及其控制点坐标即可。

你可能感兴趣的:(贝塞尔曲线及Path对贝塞尔曲线的支持)