From: <raf...@us...> - 2012-07-17 11:08:07
|
Revision: 10746 http://octave.svn.sourceforge.net/octave/?rev=10746&view=rev Author: rafavzqz Date: 2012-07-17 11:08:00 +0000 (Tue, 17 Jul 2012) Log Message: ----------- Plot for non-unit interval Modified Paths: -------------- trunk/octave-forge/extra/nurbs/inst/nrbkntplot.m trunk/octave-forge/extra/nurbs/inst/nrbplot.m Modified: trunk/octave-forge/extra/nurbs/inst/nrbkntplot.m =================================================================== --- trunk/octave-forge/extra/nurbs/inst/nrbkntplot.m 2012-07-17 08:53:26 UTC (rev 10745) +++ trunk/octave-forge/extra/nurbs/inst/nrbkntplot.m 2012-07-17 11:08:00 UTC (rev 10746) @@ -56,8 +56,8 @@ % And plot the knots knt1 = unique (nurbs.knots{1}); knt2 = unique (nurbs.knots{2}); - p1 = nrbeval (nurbs, {knt1, linspace(0.0,1.0,nsub)}); - p2 = nrbeval (nurbs, {linspace(0.0,1.0,nsub), knt2}); + p1 = nrbeval (nurbs, {knt1, linspace(knt2(1),knt2(end),nsub)}); + p2 = nrbeval (nurbs, {linspace(knt1(1),knt1(end),nsub), knt2}); if (any (nurbs.coefs(3,:))) % surface in a 3D space @@ -88,18 +88,18 @@ knt1 = unique (nurbs.knots{1}); knt2 = unique (nurbs.knots{2}); knt3 = unique (nurbs.knots{3}); - kv_face1 = nrbeval (nurbs, {0, knt2, linspace(0.0,1.0,nsub)}); - kw_face1 = nrbeval (nurbs, {0, linspace(0.0,1.0,nsub), knt3}); - kv_face2 = nrbeval (nurbs, {1, knt2, linspace(0.0,1.0,nsub)}); - kw_face2 = nrbeval (nurbs, {1, linspace(0.0,1.0,nsub), knt3}); - ku_face3 = nrbeval (nurbs, {knt1, 0, linspace(0.0,1.0,nsub)}); - kw_face3 = nrbeval (nurbs, {linspace(0.0,1.0,nsub), 0, knt3}); - ku_face4 = nrbeval (nurbs, {knt1, 1, linspace(0.0,1.0,nsub)}); - kw_face4 = nrbeval (nurbs, {linspace(0.0,1.0,nsub), 1, knt3}); - ku_face5 = nrbeval (nurbs, {knt1, linspace(0.0,1.0,nsub), 0}); - kv_face5 = nrbeval (nurbs, {linspace(0.0,1.0,nsub), knt2, 0}); - ku_face6 = nrbeval (nurbs, {knt1, linspace(0.0,1.0,nsub), 1}); - kv_face6 = nrbeval (nurbs, {linspace(0.0,1.0,nsub), knt2, 1}); + kv_face1 = nrbeval (nurbs, {knt1(1), knt2, linspace(knt3(1),knt3(end),nsub)}); + kw_face1 = nrbeval (nurbs, {knt1(1), linspace(knt2(1),knt2(end),nsub), knt3}); + kv_face2 = nrbeval (nurbs, {knt1(end), knt2, linspace(knt3(1),knt3(end),nsub)}); + kw_face2 = nrbeval (nurbs, {knt1(end), linspace(knt2(1),knt2(end),nsub), knt3}); + ku_face3 = nrbeval (nurbs, {knt1, knt2(1), linspace(knt3(1),knt3(end),nsub)}); + kw_face3 = nrbeval (nurbs, {linspace(knt1(1),knt1(end),nsub), knt2(1), knt3}); + ku_face4 = nrbeval (nurbs, {knt1, knt2(end), linspace(knt3(1),knt3(end),nsub)}); + kw_face4 = nrbeval (nurbs, {linspace(knt1(1),knt1(end),nsub), knt2(end), knt3}); + ku_face5 = nrbeval (nurbs, {knt1, linspace(knt2(1),knt2(end),nsub), knt3(1)}); + kv_face5 = nrbeval (nurbs, {linspace(knt1(1),knt1(end),nsub), knt2, knt3(1)}); + ku_face6 = nrbeval (nurbs, {knt1, linspace(knt2(1),knt2(end),nsub), knt3(end)}); + kv_face6 = nrbeval (nurbs, {linspace(knt1(1),knt1(end),nsub), knt2, knt3(end)}); for ii = 1:numel(knt1) plot3 (squeeze (ku_face3(1,ii,:,:)), squeeze (ku_face3(2,ii,:,:)), squeeze (ku_face3(3,ii,:,:))); Modified: trunk/octave-forge/extra/nurbs/inst/nrbplot.m =================================================================== --- trunk/octave-forge/extra/nurbs/inst/nrbplot.m 2012-07-17 08:53:26 UTC (rev 10745) +++ trunk/octave-forge/extra/nurbs/inst/nrbplot.m 2012-07-17 11:08:00 UTC (rev 10746) @@ -95,7 +95,9 @@ % plot the curve or surface if (iscell (nurbs.knots)) if (size (nurbs.knots,2) == 2) % plot a NURBS surface - p = nrbeval (nurbs, {linspace(0.0,1.0,subd(1)) linspace(0.0,1.0,subd(2))}); + knt = nurbs.knots; + p = nrbeval (nurbs, {linspace(knt{1}(1),knt{1}(end),subd(1)) ... + linspace(knt{2}(1),knt{2}(end),subd(2))}); if (strcmp (light,'on')) % light surface surfl (squeeze(p(1,:,:)), squeeze(p(2,:,:)), squeeze(p(3,:,:))); @@ -105,10 +107,11 @@ shading faceted; end elseif (size (nurbs.knots,2) == 3) % plot the boundaries of a NURBS volume + knt = nurbs.knots; hold_flag = ishold; - px = nrbeval (nurbs, {[0 1] linspace(0.0,1.0,subd(2)) linspace(0.0,1.0,subd(3))}); - py = nrbeval (nurbs, {linspace(0.0,1.0,subd(1)) [0 1] linspace(0.0,1.0,subd(3))}); - pz = nrbeval (nurbs, {linspace(0.0,1.0,subd(1)) linspace(0.0,1.0,subd(2)) [0 1]}); + px = nrbeval (nurbs, {knt{1}([1 end]) linspace(knt{2}(1),knt{2}(end),subd(2)) linspace(knt{3}(1),knt{3}(end),subd(3))}); + py = nrbeval (nurbs, {linspace(knt{1}(1),knt{1}(end),subd(1)) knt{2}([1 end]) linspace(knt{3}(1),knt{3}(end),subd(3))}); + pz = nrbeval (nurbs, {linspace(knt{1}(1),knt{1}(end),subd(1)) linspace(knt{2}(1),knt{2}(end),subd(2)) knt{3}([1 end])}); if (strcmp (light, 'on')) surfl (squeeze (pz(1,:,:,1)), squeeze (pz(2,:,:,1)), squeeze (pz(3,:,:,1))); hold on @@ -138,7 +141,7 @@ end else % plot a NURBS curve - p = nrbeval (nurbs, linspace (0.0, 1.0, subd)); + p = nrbeval (nurbs, linspace (nurbs.knots(1), nurbs.knots(end), subd)); if (any (nurbs.coefs(3,:))) % 3D curve This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |