Blossoming

From CGAFaq

Jump to: navigation, search

Blossoming is the term coined by Lyle Ramshaw (1987) for the process of converting a polynomial of degree in one variable to its blossom, a symmetric polynomial in variables each of degree one such that the original polynomial is recovered by substituting the same value for each variable. This poetic name has gained wide acceptance in computer graphics (Farin, 2001), though it soon emerged that the idea has a longer pedigree as polarization (Ramshaw, 1989). For example, polarizing the Pythagorean distance

gives the dot product,

This example also shows that blossoming is not limited to univariate polynomials. The motivating use for computer graphics is B-spline theory, where blossoming is an elegant and powerful tool.

A polynomial is symmetric in variables if it is unchanged by any permutation of the variables. For example, elementary symmetric polynomials in three variables can be created by the substitutions

Consider the special case of a cubic Bézier curve parameterized over the interval . The curve is a polynomial function

If is the blossom of , the Bézier control points are

The de Casteljau algorithm can then be deduced as a simple consequence of blossom properties, as can curve splitting.

By definition, the blossom value equals the curve point , so this is what evaluation must compute. The first two control points are the blossom values and ; and since is linear in its last argument we deduce that linear interpolation of these points will produce

The middle two control points are the blossom values and , from which it follows that

and, similarly, that

The blossom is a symmetric function of its arguments, so ; hence we deduce that

and, similarly, that

Now symmetry, linearity, and diagonality imply that a final linear interpolation will produce the desired curve point,

This series of interpolations is, of course, the well-known de Casteljau algorithm.

References

Personal tools