X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fnurbs-1.3.6%2Fnrbtestsrf.m;fp=octave_packages%2Fnurbs-1.3.6%2Fnrbtestsrf.m;h=71a97db815bf3d6ff91baa6cf7fe6a390f1cc955;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/nurbs-1.3.6/nrbtestsrf.m b/octave_packages/nurbs-1.3.6/nrbtestsrf.m new file mode 100644 index 0000000..71a97db --- /dev/null +++ b/octave_packages/nurbs-1.3.6/nrbtestsrf.m @@ -0,0 +1,61 @@ +function srf = nrbtestsrf +% NRBTESTSRF: Constructs a simple test surface. +% +% 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 2 of the License, or +% (at your option) any later version. + +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . + +% allocate multi-dimensional array of control points +pnts = zeros(3,5,5); + +% define a grid of control points +% in this case a regular grid of u,v points +% pnts(3,u,v) +% + +pnts(:,:,1) = [ 0.0 3.0 5.0 8.0 10.0; % w*x + 0.0 0.0 0.0 0.0 0.0; % w*y + 2.0 2.0 7.0 7.0 8.0]; % w*z + +pnts(:,:,2) = [ 0.0 3.0 5.0 8.0 10.0; + 3.0 3.0 3.0 3.0 3.0; + 0.0 0.0 5.0 5.0 7.0]; + +pnts(:,:,3) = [ 0.0 3.0 5.0 8.0 10.0; + 5.0 5.0 5.0 5.0 5.0; + 0.0 0.0 5.0 5.0 7.0]; + +pnts(:,:,4) = [ 0.0 3.0 5.0 8.0 10.0; + 8.0 8.0 8.0 8.0 8.0; + 5.0 5.0 8.0 8.0 10.0]; + +pnts(:,:,5) = [ 0.0 3.0 5.0 8.0 10.0; + 10.0 10.0 10.0 10.0 10.0; + 5.0 5.0 8.0 8.0 10.0]; + +% knots +knots{1} = [0 0 0 1/3 2/3 1 1 1]; % knots along u +knots{2} = [0 0 0 1/3 2/3 1 1 1]; % knots along v + +% make and draw nurbs surface +srf = nrbmak(pnts,knots); + +end + +%!demo +%! srf = nrbtestsrf; +%! nrbplot(srf,[20 30]) +%! title('Test surface') +%! hold off +