NRBREVERSE: Reverse the evaluation directions of a NURBS geometry. Calling Sequence: rnrb = nrbreverse(nrb); rnrb = nrbreverse(nrb, idir); INPUT: nrb : NURBS data structure, see nrbmak. idir : vector of directions to reverse. OUTPUT: rnrb : Reversed NURBS. Description: Utility function to reverse the evaluation direction of a NURBS curve or surface. Copyright (C) 2000 Mark Spink Copyright (C) 2013 Rafael Vazquez 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.5 1.5 3.0 7.5 8.5; 3.0 5.5 1.5 4.0 4.5; 0.0 0.0 0.0 0.0 0.0]; crv1 = nrbmak(pnts,[0 0 0 1/2 3/4 1 1 1]); crv2 = nrbreverse(crv1); fprintf('Knots of the original curve\n') disp(crv1.knots) fprintf('Knots of the reversed curve\n') disp(crv2.knots) fprintf('Control points of the original curve\n') disp(crv1.coefs(1:2,:)) fprintf('Control points of the reversed curve\n') disp(crv2.coefs(1:2,:)) nrbplot(crv1,100) hold on nrbplot(crv2,100) title('The curve and its reverse are the same') hold off
Produces the following output
Knots of the original curve 0 0 0 0.5000 0.7500 1.0000 1.0000 1.0000 Knots of the reversed curve 0 0 0 0.2500 0.5000 1.0000 1.0000 1.0000 Control points of the original curve 0.5000 1.5000 3.0000 7.5000 8.5000 3.0000 5.5000 1.5000 4.0000 4.5000 Control points of the reversed curve 8.5000 7.5000 3.0000 1.5000 0.5000 4.5000 4.0000 1.5000 5.5000 3.0000
and the following figure
Figure 1 |
---|
Package: nurbs