多项式方程式是 Alias 所使用的曲线表示法的数学基础。
从最简单的数学表示法开始,我们都记得在几何课上学习过可以使用 y = 2x 之类的方程式代表一条(二维)直线。对于每个 x 值,将其乘以 2 可以得出 y 值,并且可以将这两个值的关系用函数图像来表示。
此类方程式的一般形式是 ax + by = c。等号左侧的表达式称为多项式(多项是指表达式包含多个项)。
我们可以创建更加复杂的表达式,以 x 乘以自身,即 y = x * x * x。不必在项中写出所有 x,通常只是将 x 相乘的次数以上标形式表示。这种上标称为“指数”。所以,上面的表达式表示为 y = x3。
我们可以创建带有指数的多项式,例如:y = ax2 + bx + c(您可能还记得,在数学课上,这是一个二次方程式)。第一个 x 的指数 (2) 意味着此函数的图像是曲线,而不是直线。
多项式方程式的阶数是方程式中的最大指数。回忆一下,直线方程式的最大指数是 1。(如果某项没有可见的指数,则相当于指数是 1。)
有两种常见方法可以创建曲线的表达式。隐式表示法将每个变量组合在一个较长的非线性方程式中,例如:ax3 + by2 + 2cxy + 2dx +2ey +f = 0。
在此表示法中,要计算出 x 值和 y 值才能在函数图像上绘制这些点,因此必须对整个非线性方程式求解。
参数表示法将方程式重写为较短的、容易解出的方程式,即将一个变量转换为其他变量的值:x = a + bt + ct2 + dt3 + ... y = g + ht + jt2 + kt3 + ...
使用此表示法后,x 和 y 的方程式就显得非常简单。我们只需知道 t(要计算 x 和 y 值的曲线上的点)的值即可。
通过在空间中移动点,可以绘制参数化曲线。我们可以随时计算移动点的 x 值和 y 值。
这个点非常重要,因为许多工具都使用将参数值与线上的每个点相关联的概念。这与曲线的 U 维相对应。
曲线方程式的阶数越低,所描述的曲线就越简单。那么应该如何表示复杂曲线?简单的回答可能是提高曲线的阶数,但是这种方法并非很有效。曲线的阶数越高,要求进行的计算就越多。此外,阶数高于 7 的曲线的形状中容易出现宽幅振荡,这样不适合进行交互式建模。
正确的答案是将阶数相对较低 (1 - 7) 的曲线方程式接合在一起,形成更长、更复杂的复合曲线的曲线段。曲线段(或跨距)的接合点称为编辑点。
阶数是 5 和 7 的曲线,只能在某些产品中使用或作为可购买的选件提供。
但是,不能完全忽视阶数较高的曲线。阶数是 5 和 7 的曲线具有某些优点,例如曲率更加平滑并且更加“绷紧”。此类曲线经常在汽车设计中使用。
一种由汽车行业开发且为所有使用常见绘图程序的用户所熟悉的曲线是 Bezier 曲线。Bezier 曲线将三次曲线段组合在一起,每个曲线段包含四个控制点(起点、终点以及两个“操纵点”)。Bezier 曲线的问题是曲线段之间的接合未必平滑。
NURBS 对此问题使用的解决方法是,使用上一个跨距的最后控制点作为当前跨距的初始控制点。这样可以确保曲线段之间平滑接合。(使用包含噪点的 NURBS 曲线仍可以很好地模拟 Bezier 曲线)。
曲线的阶数决定了跨距之间接合的平滑度。阶数是 1 的(线性)曲线在接合处提供位置连续性。阶数是 2 的(二次)曲线提供切线连续性。阶数是 3 的(三次)曲线提供曲率连续性。