贝塞尔曲线是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贝塞尔曲线是啥?相关的知识,希望对你有一定的参考价值。
参考技术A 线性贝塞尔曲线给定点P0、P1,线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出:且其等同于线性插值。
[编辑] 二次方贝塞尔曲线二次方贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t)追踪:
。
TrueType字型就运用了以贝塞尔样条组成的二次贝塞尔曲线。
[编辑] 三次方贝塞尔曲线P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝塞尔曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2;这两个点只是在那里提供方向资讯。P0和P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。
曲线的参数形式为:
。
现代的成象系统,如PostScript、Asymptote和Metafont,运用了以贝塞尔样条组成的三次贝塞尔曲线,用来描绘曲线轮廓。
[编辑] 一般化n阶贝塞尔曲线可如下推断。给定点P0、P1、…、Pn,其贝塞尔曲线即
。
例如n = 5:
。
如上公式可如下递归表达: 用表示由点P0、P1、…、Pn所决定的贝塞尔曲线。则
用平常话来说,n阶的贝塞尔曲线,即双n - 1阶贝塞尔曲线之间的插值。
[编辑] 术语一些关于参数曲线的术语,有
即多项式
又称作n阶的伯恩斯坦基底多项式,定义00 = 1。
点Pi称作贝塞尔曲线的控制点。多边形以带有线的贝塞尔点连接而成,起始于P0并以Pn终止,称作贝塞尔多边形(或控制多边形)。贝塞尔多边形的凸包(convex hull)包含有贝塞尔曲线。
[编辑] 注解开始于P0并结束于Pn的曲线,即所谓的端点插值法属性。
曲线是直线的充分必要条件是所有的控制点都位在曲线上。同样的,贝塞尔曲线是直线的充分必要条件是控制点共线。
曲线的起始点(结束点)相切于贝塞尔多边形的第一节(最后一节)。
一条曲线可在任意点切割成两条或任意多条子曲线,每一条子曲线仍是贝塞尔曲线。
一些看似简单的曲线(如圆)无法以贝塞尔曲线精确的描述,或分段成贝塞尔曲线(虽然当每个内部控制点对单位圆上的外部控制点水平或垂直的的距离为时,分成四段的贝塞尔曲线,可以小于千分之一的最大半径误差近似于圆)。
位于固定偏移量的曲线(来自给定的贝塞尔曲线),又称作偏移曲线(假平行于原来的曲线,如两条铁轨之间的偏移)无法以贝塞尔曲线精确的形成(某些琐屑实例除外)。无论如何,现存的启发法通常可为实际用途中给出近似值。
[编辑] 建构贝塞尔曲线[编辑] 线性曲线
线性贝塞尔曲线演示动画,t in [0,1]
线性贝塞尔曲线函数中的t会经过由P0至P1的B(t)所描述的曲线。例如当t=0.25时,B(t)即一条由点P0至P1路径的四分之一处。就像由0至1的连续t,B(t)描述一条由P0至P1的直线。
[编辑] 二次曲线为建构二次贝塞尔曲线,可以中介点Q0和Q1作为由0至1的t:
由P0至P1的连续点Q0,描述一条线性贝塞尔曲线。
由P1至P2的连续点Q1,描述一条线性贝塞尔曲线。
由Q0至Q1的连续点B(t),描述一条二次贝塞尔曲线。
二次贝塞尔曲线的结构 二次贝塞尔曲线演示动画,t in [0,1]
[编辑] 高阶曲线为建构高阶曲线,便需要相应更多的中介点。对于三次曲线,可由线性贝塞尔曲线描述的中介点Q0、Q1、Q2,和由二次曲线描述的点R0、R1所建构:
三次贝塞尔曲线的结构 三次贝塞尔曲线演示动画,t in [0,1]
对于四次曲线,可由线性贝塞尔曲线描述的中介点Q0、Q1、Q2、Q3,由二次贝塞尔曲线描述的点R0、R1、R2,和由三次贝塞尔曲线描述的点S0、S1所建构:
四次贝塞尔曲线的结构 四次贝塞尔曲线演示动画,t in [0,1]
(还可参阅五阶贝塞尔曲线的构成。)
[编辑] 应用[编辑] 电脑绘图贝塞尔曲线被广泛地在计算机图形中用来为平滑曲线建立模型。
二次和三次贝塞尔曲线最为常见
[编辑] 程式范例下列程式码为一简单的实际运用范例,展示如何使用C标出三次方贝塞尔曲线。注意,此处仅简单的计算多项式系数,并读尽一系列由0至1的t值;实践中一般不会这么做,递归求解通常会更快速——以更多的内存为代价,花费较少的处理器时间。不过直接的方法较易于理解并产生相同结果。以下程式码已使运算更为清晰。实践中的最佳化会先计算系数一次,并在实际计算曲线点的循环中反复使用。此处每次都会重新计算,损失了效率,但程式码更清楚易读。
曲线的计算可在曲线阵列上将相连点画上直线——点越多,曲线越平滑。
在部分架构中,下以程式码也可由动态规划进行最佳化。举例来说,dt是一个常数,cx * t则等同于每次反复就修改一次常数。经反复应用这种最佳化后,循环可被重写为没有任何乘法(虽然这个过程不是稳定数值的)。
以上是关于贝塞尔曲线是啥?的主要内容,如果未能解决你的问题,请参考以下文章