NRBCOONS: Construction of a Coons patch. Calling Sequence: srf = nrbcoons(ucrv1, ucrv2, vcrv1, vcrv2) INPUT: ucrv1 : NURBS curve defining the bottom U direction boundary of the constructed NURBS surface. ucrv2 : NURBS curve defining the top U direction boundary of the constructed NURBS surface. vcrv1 : NURBS curve defining the bottom V direction boundary of the constructed NURBS surface. vcrv2 : NURBS curve defining the top V direction boundary of the constructed NURBS surface. OUTPUT: srf : Coons NURBS surface patch. Description: Construction of a bilinearly blended Coons surface patch from four NURBS curves that define the boundary. The orientation of the four NURBS boundary curves. ^ V direction | | ucrv2 ------->-------- | | | | vcrv1 ^ Surface ^ vcrv2 | | | | ------->-----------> U direction ucrv1 Examples: // Define four NURBS curves and construct a Coons surface patch. pnts = [ 0.0 3.0 4.5 6.5 8.0 10.0; 0.0 0.0 0.0 0.0 0.0 0.0; 2.0 2.0 7.0 4.0 7.0 9.0]; crv1 = nrbmak(pnts, [0 0 0 1/3 0.5 2/3 1 1 1]); pnts= [ 0.0 3.0 5.0 8.0 10.0; 10.0 10.0 10.0 10.0 10.0; 3.0 5.0 8.0 6.0 10.0]; crv2 = nrbmak(pnts, [0 0 0 1/3 2/3 1 1 1]); pnts= [ 0.0 0.0 0.0 0.0; 0.0 3.0 8.0 10.0; 2.0 0.0 5.0 3.0]; crv3 = nrbmak(pnts, [0 0 0 0.5 1 1 1]); pnts= [ 10.0 10.0 10.0 10.0 10.0; 0.0 3.0 5.0 8.0 10.0; 9.0 7.0 7.0 10.0 10.0]; crv4 = nrbmak(pnts, [0 0 0 0.25 0.75 1 1 1]); srf = nrbcoons(crv1, crv2, crv3, crv4); nrbplot(srf,[20 20],220,45); Copyright (C) 2000 Mark Spink This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The following code
pnts = [ 0.0 3.0 4.5 6.5 8.0 10.0; 0.0 0.0 0.0 0.0 0.0 0.0; 2.0 2.0 7.0 4.0 7.0 9.0]; crv1 = nrbmak(pnts, [0 0 0 1/3 0.5 2/3 1 1 1]); pnts= [ 0.0 3.0 5.0 8.0 10.0; 10.0 10.0 10.0 10.0 10.0; 3.0 5.0 8.0 6.0 10.0]; crv2 = nrbmak(pnts, [0 0 0 1/3 2/3 1 1 1]); pnts= [ 0.0 0.0 0.0 0.0; 0.0 3.0 8.0 10.0; 2.0 0.0 5.0 3.0]; crv3 = nrbmak(pnts, [0 0 0 0.5 1 1 1]); pnts= [ 10.0 10.0 10.0 10.0 10.0; 0.0 3.0 5.0 8.0 10.0; 9.0 7.0 7.0 10.0 10.0]; crv4 = nrbmak(pnts, [0 0 0 0.25 0.75 1 1 1]); srf = nrbcoons(crv1, crv2, crv3, crv4); nrbplot(srf,[20 20]); title('Construction of a bilinearly blended Coons surface.'); hold off
Produces the following figure
Figure 1 |
---|
Package: nurbs