Jump to content

Coons patch

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Michael Hardy (talk | contribs) at 19:53, 7 April 2012 (A proper initial sentence, probably in great need of improvement, but better than nothing.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A Coons surface, named after Steven Anson Coons, is a shaped produced by certain kinds of computer graphics, used in designing shapes of automobiles.

The union of two sets contains the elements which are in either one or the other. An interpolant is a mathematical construction which matches data, a set of linear functionals called its interpolation properties. Coons combined two interpolants to get the union of their interpolation properties. For 2 data, f0 and f1, L(x;f0,f1) == (1-x) f0 + x f1 provides a function, a polynomial, a line which matches the data. If f(x) is any function defined at 0 and 1, its linear interpolant is L(x;f(0),f(1)). Coons' problem was to describe car surfaces. He noticed that L(x;f(0,y),f(1,y)) was a surface that matched two "parallel" curves of data measured from a car sculpture. It needed more. By symmetry L(y;f(x,0),f(x,1)) matched crossing curves. Where P1=L(x;f(0,y),f(1,y)) and P2=L(y;f(x,0),f(x,1)) Coons produced P1 | P2 which matched data on all four sides of the unit square provided the data was consistent in that f(0,0) = f(x,0)|x=0, = f(0,y)|y=0 . Similarly on all corners. This provides P1P2 == P2P1

P1 | P2 = P1 + P2 - P1P2. Or I-(P1 | P2) = (I-P1)(I-P2). If J is an interpolation property of P1 then J==JP1 or J(I-P1) == 0 so J(I-(P1 | P2)) = J(I-P1)(I-P2)== 0. The boolean sum, | of two interpolants has at least the interpolation properties of the first.

If K is an interpolation property of P2 then K(I-P2) == 0 so K(I-(P1 | P2)) = K(I-P1)(I-P2) = K(I-P2)(I-P1)==0. Consistent data provides commutivity of the remainders and shows the union of interpolation properties. It matches all around the unit square.

A dual statement holds. F in the precision of P1 means P1F ==F. If P1 has precision A and P2 has precision B then the boolean sum has at least the precision B and if P1P2=P2P1 then it has the precision A union B. P1 | P2 is precise for functions which are linear in x and linear in y or bilinear.

Coons' interpolant replaces linear interpolation with cubic Hermite interpolation. Edge values, partial derivatives and mixed partial derivatives must be consistent at the corners for the cubic lofting projectors to commute.

Coons' patch creates 3 coordinate interpolants to make a parametric surface. With integers a and b of value 0 or 1, a|b = a+b-ab.