贝塞尔曲线原理

引自博客:

http://www.jianshu.com/p/55c721887568

https://www.zhihu.com/question/29565629

http://blog.csdn.net/shenziheng1/article/details/54410816


贝塞尔曲线模拟工具:http://myst729.github.io/bezier-curve/

三阶贝塞尔曲线模拟:http://cubic-bezier.com/

函数曲线:https://www.desmos.com/calculator

一句话概括贝塞尔曲线:将任意一条曲线转化为精确的数学公式。

定义:

由于用计算机画图大部分时间是操作鼠标来掌握线条的路径,与手绘的感觉和效果有很大的差别。即使是一位精明的画师能轻松绘出各种图形,拿到鼠标想随心所欲的画图也不是一件容易的事。这一点是计算机万万不能代替手工的工作,所以到目前为止人们只能颇感无奈。使用贝塞尔工具画图很大程度上弥补了这一缺憾。

贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一。它通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。其中起重要作用的是位于曲线中央的控制线。这条线是虚拟的,中间与贝塞尔曲线交叉,两端是控制端点。移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度)移动中间点(也就是移动虚拟的控制线)时,贝塞尔曲线在起始点和终止点锁定的情况下做均匀移动。注意,贝塞尔曲线上的所有控制点、节点均可编辑。这种“智能化”的矢量线条为艺术家提供了一种理想的图形编辑与创造的工具。

原理:

一阶贝塞尔(直线)

一阶贝赛尔曲线上的由两个点确定  P0 和P1,当t在0--->1区间上递增时,根据

此会得到多个点的坐标,其实这些的点就是一条直线上的点。

B(t) = P0 + (P1-P0)*t

B(t) = (1-t)P0 + tP1

//=>

B(t).x = (1-t)P0.x + tP1.x

B(t).y = (1-t)P0.y + tP1.y

贝塞尔曲线原理_第1张图片
一阶贝塞尔曲线

二阶贝塞尔曲线

二阶贝赛尔曲线由`3`个点确定,它可以理解成是这样的一阶贝赛尔曲线:确定该`一阶贝赛尔曲线`的两个点是变化的。

这两个点(设分别为Pm,Pn)是怎样变化的呢,这两个点又分别是(P0,P1)确定的`一阶贝赛尔曲线`和(P1,P2)确定的`一阶贝赛尔`

Pm(t) = (1-t)P0 + tP1

Pn(t) = (1-t)P1 + tP2

B(t) = (1-t)Pm(t) + tPn(t)

= (1-t)^2 P0 + 2(1-t)tP1+ t^2P2

贝塞尔曲线原理_第2张图片
二阶贝塞尔曲线

三阶贝塞尔曲线

贝塞尔曲线原理_第3张图片
三阶贝塞尔曲线

贝塞尔曲线的特点:

特点一:曲线通过始点和终点,并与特征多边形首末两边相切于始点和终点,中间点将曲线拉向自己。

特点二:平面离散点控制曲线的形状,改变一个离散点的坐标,曲线的形状将随之改变(点对曲线具有整体控制性)。

特点三:曲线落在特征多边形的凸包之内,它比特征多边形更趋于光滑。

特点四:贝塞尔曲线属于“平均通过”式曲线。

贝塞尔曲线的使用:

数据点: 指一条路径的起始点和终止点。

控制点:控制点决定了一条路径的弯曲轨迹。

你可能感兴趣的:(贝塞尔曲线原理)