Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!apple!jp From: jp@Apple.COM (John Peterson) Newsgroups: comp.graphics Subject: Re: Bezier Surface Patches -> NURBS ?? Keywords: NURBS Bezier, conversion Message-ID: <50301@apple.Apple.COM> Date: 15 Mar 91 20:14:17 GMT Organization: Apple Computer Inc., Cupertino, CA Lines: 37 John Kellow (kellow@ndcheg.cheg.nd.edu) writes: > I am trying to convert some bezier surface patch data to NURB surface > patches and I was wondering if someone could point me to a good reference > on doing this (or even some examples of source code). R Victor Klassen (klassen@gvax.cs.cornell.edu) writes: > This is a special case of a non-uniform b-spline, (NURBS) so you're there. > In order to do this conversion, find the matrix BZ that takes Bezier control > points to monomial form, and the matrix B that takes Bspline control points to > monomial form, then apply B BZ^-1 to the control points... > > [stuff about matrices and Macsyma deleted...] It's really straightforward to convert Bezier patches to NURBS - there's no need to do the basis matrix stuff. Just assign the Bezier control points to the NURB control points (if the Bezier control points don't have a rational ("W") component, set the NURB W's to 1.0). Set the NURB orders to the degree+1 of the Bezier patch. Then create the knot vectors with N zeros followed by N ones, where N = degree + 1 of the Bezier patch. For example, a cubic knot vector would be: 0 0 0 0 1 1 1 1 and for a degree seven Bezier patch use knot vectors like: 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 That's all there is to it. Cheers, jp