vsh@etnibsd.UUCP (Steve Harris) (03/09/90)
[This article is being posted (belatedly) for a friend.]
[Please see the end of the article for his email address.]
Is anyone out there familiar with techniques for approximating Bezier
surfaces of degree 4-7 with B-spline surfaces of order 4 (degree == 3,
bi-cubic)? Degree 2 and 3 Bezier surfaces can be easily approximated since
they are special cases of the bi-cubic B-spline surfaces. Unless I'm
mistaken, which is entirely possible, the others, the degree >= 4
cases, are not so obvious.
One approach I'm considering is:
1) Generate the points on the Bezier surface (using the conventional
approach).
2) Divide these points into sub-regions.
a) What criteria should I use to pick the subregions? Number of
Control points, Tangency, curvature, other?
3) Create bicubic B-surfaces which approximate these regions.
a) Anyone got any good ideas on how to accomplish this with finite
workstation-type resources?
The ultimate goal here is to produce a B-surface which looks like the
Bezier used as input. Other requirements, such as nth order continuity
at the joints, although desirable, are not necessities.
I've been looking through Faux & Pratt (Computational Geometry ...), but there
is not much mention of approximation techniques which produce b-splines.
Also I'm trying to get through Bartels, Beatty & Barsky (Intro. to
B-splines ...) but I figure it will be sometime in the middle of summer
before I've mastered the concepts presented there enough to derive the above
desiderata. Can anyone out there suggest a source which might have a direct
bearing on this problem? Can anyone offer a suggestion for where I may
have gone wrong in my analysis or my approach? Any help appreciated.
____,.,_..,__.,_.,__ Sean Philip McElroy
__'..__._,_.__.__.__ Cognition Corp.
_,___`_.'__.__.__.__ 755 Middlesex Turnpike, Billerica, MA 01821
___`..'_,___.__.__,_ dandelion!sean@apollo.comrhbartels@watcgl.waterloo.edu (Richard Bartels) (03/11/90)
In article <1120@etnibsd.UUCP> dandelion!sean@apollo.com posts the question: > >[cubic Bezier surfaces are] >...special cases of the bi-cubic B-spline surfaces. Unless I'm >mistaken, which is entirely possible, the others, the degree >= 4 >cases, are not so obvious. > There is nothing special about cubics. If a B-spline has as many knots as its order at every joint, it reduces to the Bezier basis polynomial. All Bezier curves and tensor-product surfaces of whatever order are special cases of B-spline curves and tensor-product surfaces of the same order (in the same sense that this is true of the cubic case). Bezier's are simply B's with the highest possible knot multiplicities. Perhaps the person originally posing the question had something else in mind. If the Bezier surface had higher continuity than a Bezier surface has a right to enjoy, for example a cubic Bezier surface with continuity in second derivatives between the patches, then the surface can be re-represented in terms of B-splines with lower knot multiplicity, for example cubic B-splines with single knots (the B-splines most people think of as the "normal and reasonable" ones). The way to get from the Bezier representation to the B-spline representation (or from the "high knot multiplicity B-splines" to the "low multiplicity knot B-splines") is by, you guessed it, "removing knots". We didn't cover that one in the book, but there is a brief mention of the concept in a recent article by Piegl and Tiller in IEEE CG&A on drawing circles with rational splines. -Richard