关键点
- Bezier Curves
- Bezier Surfaces
1. Bezier Curves 贝塞尔曲线
用一系列的控制点定义一个曲线,并且定义了一系列控制。
如下定义起止点为p0、p3,且定义起始切线,则绘制出一条曲线。
1.1 de Casteljau Alogrithm
- Three input points
定义一个时间t,然后取b0b1与b1b2的相应比例位置,得到b01b11,然后对其按t划分得到b02,则为贝塞尔曲线在t时刻的位置。
- Four input points
同样在三个直线上找到分割点,然后对分割点得到的两个直线在做分割,最后在这个线段上分割,得到t时刻位置。
1.2 Algebraic Formula
de Casteljau Alogrithm是在对每层控制点做线性插值。
可见贝塞尔曲线上的点是所有控制点的线性组合。
可见系数是(s+t)^n的展开式,即Bernstein form伯恩斯坦多项式。此外,三维空间一样适用。
1.3 性质
- 起止点确定
- 起止点切线确定(系数取决于点数-1)
- 仿射变换与贝塞尔曲线可以交换顺序(投影不可以)
- 凸包性质:贝塞尔曲线的点一定在给定控制点的凸包内(凸包指包含给定点的最小凸多边形)。
1.4 Piecewise Berzier Curves 逐段贝塞尔曲线
当控制点增多时,不容易画出贝塞尔曲线,因此考虑到是用少量控制点画出贝塞尔曲线的一段,一般每四个控制点画一段,且各段之间首尾相接,即Piecewise cubic Verzier。为了保证各段之间几何连续且切线连续,要求首尾导数大小方向一致。
- C0连续:首尾相接
- C1连续:切线一直
1.5 其他曲线
1.5.1 Spline 样条
- B-spline(basis spline)具有局部性,即改变控制点只会影响局部范围。
2. Bezier Surfaces
- 使用4x4共16个点,分别对4行得到Berzier Curves,然后对对应水平时刻t的四个点再做贝塞尔曲线,得到曲面。
- 使用最广泛的还是mesh网格。
来源
[1]Games101. 闫令琪
标签:11,Bezier,Geometry,曲线,贝塞尔,Surface,切线,控制点,Curves From: https://www.cnblogs.com/etherovo/p/17321451.html