Demos in new graphic
Pierre Marechal [Mon, 18 Feb 2008 12:46:37 +0000 (12:46 +0000)]
29 files changed:
scilab/modules/graphics/demos/anim/anim.dem
scilab/modules/graphics/demos/anim/anim1.dem [deleted file]
scilab/modules/graphics/demos/anim/anim1/anim1.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim1/anim1_gateway.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim2.dem [deleted file]
scilab/modules/graphics/demos/anim/anim2/anim2.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim2/anim2_gateway.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim3.dem [deleted file]
scilab/modules/graphics/demos/anim/anim3/anim3.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim3/anim3_gateway.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim4.dem [deleted file]
scilab/modules/graphics/demos/anim/anim4/anim4.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim4/anim4_gateway.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim5.dem [deleted file]
scilab/modules/graphics/demos/anim/anim5/anim5.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim5/anim5_gateway.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim6.dem [deleted file]
scilab/modules/graphics/demos/anim/anim6.sci [deleted file]
scilab/modules/graphics/demos/anim/anim6/anim6.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim6/anim6.sci [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim6/anim6_gateway.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim6/yt.wrt [moved from scilab/modules/graphics/demos/anim/yt.wrt with 100% similarity]
scilab/modules/graphics/demos/anim/anim7.dem [deleted file]
scilab/modules/graphics/demos/anim/anim7/anim7.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim7/anim7_gateway.sce [new file with mode: 0644]
scilab/modules/graphics/demos/anim/anim8.dem [deleted file]
scilab/modules/graphics/demos/anim/animxx.dem [deleted file]
scilab/modules/graphics/demos/anim/riemann.sci [deleted file]
scilab/modules/graphics/demos/anim/~anim6.sci [deleted file]

index a2ddde3..fb81684 100644 (file)
@@ -1,34 +1,7 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0);
-
-xbasc();
-fs = get('figure_style');
-path=get_absolute_file_path('anim.dem');
-
-demolist=['Rotation of a 3D Surface (plot3d1)';
-       '3D curve (param3d)';
-       'Lorentz curve (param3d) ';
-       'Rotation of a 3D contour';
-       'Evolution of a 3D surface (plot3d)';
-       'N link pendulum movement';
-       'Riemann surface';
-       'Shell'];
-deff('[]=demoexc(fil)','exec(path+fil);')
-while %t then
-       num=tk_choose(demolist(:,1),'Choose a demo');
-       if num==0 then
-               set('figure_style',fs);
-               break;
-       else
-               xdel(0);
-               xset('window',0);
-               set('figure_style','old');
-               demoexc('anim'+string(num)+'.dem');
-       end,
-end
+demolist=["Rotation of a 3D Surface (plot3d1)","anim/anim1/anim1_gateway.sce";
+       "3D curve (param3d)","anim/anim2/anim2_gateway.sce";
+       "Lorentz curve (param3d) ","anim/anim3/anim3_gateway.sce";
+       "Rotation of a 3D contour","anim/anim4/anim4_gateway.sce";
+       "Evolution of a 3D surface (plot3d)","anim/anim5/anim5_gateway.sce";
+       "N link pendulum movement","anim/anim6/anim6_gateway.sce";
+       "Shell","anim/anim7/anim7_gateway.sce"];
diff --git a/scilab/modules/graphics/demos/anim/anim1.dem b/scilab/modules/graphics/demos/anim/anim1.dem
deleted file mode 100644 (file)
index 49261c8..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0);
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'if driver()==''Pos'' then';
-       '  st=4;';
-       'else ';
-       '  st=2;';
-       'end;';
-       '';
-       'xset(''pixmap'',1);';
-       '';
-       'xset(''wwpc'');  // clean pixmap';
-       't=%pi*(-5:5)/5;';
-       '//first plot, to fix boundaries';
-       'plot3d1(t,t,sin(t)''*cos(t),35,45,'' '',[1,2,4]);';
-       'xset(''wshow''); // show pixmap';
-       'T=35:st:80;A=45:st:80;';
-       'Angles=[T A(1)*ones(A);T(1)*ones(T) A];';
-       '';
-       'realtimeinit(0.05);realtime(0);';
-       'for i=1:size(Angles,2), // loop on theta angle';
-       '  realtime(i)';
-       '  xset(''wwpc'');';
-       '  plot3d1(t,t,sin(t)''*cos(t),Angles(1,i),Angles(2,i),'' '',[1,0,4])';
-       '  xset(''wshow'');';
-       'end'];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/anim1/anim1.sce b/scilab/modules/graphics/demos/anim/anim1/anim1.sce
new file mode 100644 (file)
index 0000000..6b4d401
--- /dev/null
@@ -0,0 +1,63 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+curFig = gcf();clf();  // erase window
+xselect(); //raise the graphic window
+
+//turn off toolbar
+//----------------
+id=curFig.figure_id;
+tb=toolbar(id); //preserve setting
+toolbar(id,"off");
+
+// set double buffer mode to avoid blinking animation
+//---------------------------------------------------
+pix = curFig.pixmap; //preserve old setting
+curFig.pixmap = "on";
+
+// set a new colormap 
+//-------------------
+cmap= curFig.color_map; //preserve old setting
+curFig.color_map = hotcolormap(64);
+
+//The surface definition 
+//----------------------
+x=%pi*(-5:5)/5;
+y=x;
+Z=sin(x)'*cos(y);
+
+//Creates and set graphical entities which represent the surface
+//--------------------------------------------------------------
+
+plot3d1(x,y,Z,35,45,' ');
+s=gce(); //the handle on the surface
+s.color_flag=1 ; //assign facet color according to Z value
+title("rotation of a 3d surface","fontsize",3)
+curAxe = gca(); //handle on the currents axes
+
+//Set the evolution of the view angles Theta and Alpha
+//---------------------------------------------------
+st=2;
+T=35:st:80; //Theta
+A=45:st:80;  //Alpha
+Angles=[T A(1)*ones(A);T(1)*ones(T) A];
+
+//animation loop
+//--------------
+//use realtime to slow down the loop
+realtimeinit(0.1);//set time step and date reference
+for i=1:size(Angles,2), // loop on theta angle
+  realtime(i) //wait till date 0.1*i seconds
+  curAxe.rotation_angles = Angles(:,i); //change the view angles property
+  show_pixmap(); //send  buffer to screen
+end
+
+// Reset initial properties
+//--------------------------------
+toolbar(id,tb);//turn on toolbar
+curFig.pixmap = pix;
+
diff --git a/scilab/modules/graphics/demos/anim/anim1/anim1_gateway.sce b/scilab/modules/graphics/demos/anim/anim1/anim1_gateway.sce
new file mode 100644 (file)
index 0000000..d6eba45
--- /dev/null
@@ -0,0 +1,11 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+demo_begin();
+demo_message("SCI/modules/graphics/demos/anim/anim1/anim1.sce");
+demo_run("SCI/modules/graphics/demos/anim/anim1/anim1.sce");
+demo_end();
diff --git a/scilab/modules/graphics/demos/anim/anim2.dem b/scilab/modules/graphics/demos/anim/anim2.dem
deleted file mode 100644 (file)
index b0de145..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-// ==========================================
-// Copyright Enpc
-// last modified : 14th, December 2005
-// ==========================================
-
-mode(0);
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'xset(''pixmap'',1);';
-       '';
-       'xselect(); //raise graphic window';
-       'np=10;';
-       't=0:0.1:np*%pi;';
-       '';
-       'if driver()==''Pos'' then';
-       '  st=1.5;';
-       'else';
-       '  st=0.5;';
-       'end';
-       '';
-       'I=1:st:30';
-       '';
-       'realtimeinit(0.03);';
-       '';
-       'for i=1:size(I,''*'')';
-       '  realtime(i)';
-       '  xset(''wwpc'');';
-       '  param3d((t/(np*%pi)*%pi).*sin(t),(t/(np*%pi)*%pi).*cos(t),I(i)*t/(np*%pi),35,45,''X@Y@Z'',[2,4]);';
-       '  xset(''wshow'');';
-       'end';
-];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/anim2/anim2.sce b/scilab/modules/graphics/demos/anim/anim2/anim2.sce
new file mode 100644 (file)
index 0000000..79df286
--- /dev/null
@@ -0,0 +1,64 @@
+//\r
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) INRIA\r
+//\r
+// This file is distributed under the same license as the Scilab package.\r
+//\r
+\r
+// =============================================================================\r
+// Demonstrate animation based on the evolution of a 3d curve\r
+// =============================================================================\r
+\r
+curFig = gcf();clf();  // erase window\r
+xselect(); //raise the graphic window\r
+mode(0);\r
+\r
+\r
+//turn off toolbar\r
+//----------------\r
+id=curFig.figure_id;\r
+tb=toolbar(id); //preserve setting\r
+toolbar(id,"off");\r
+\r
+// set double buffer mode to avoid blinking animation\r
+//---------------------------------------------------\r
+pix = curFig.pixmap; //preserve old setting\r
+curFig.pixmap = "on";\r
+\r
+// Creates the 3D curve points\r
+//----------------------------\r
+\r
+np=10;\r
+t=0:0.1:np*%pi;\r
+       \r
+I=1:0.5:30;\r
+x = (t/np).*sin(t);\r
+y = (t/np).*cos(t);\r
+z = I(1)*t/(np*%pi); //initial z coordinates\r
+       \r
+//Creates and set graphical entities which represent the surface\r
+//--------------------------------------------------------------       \r
+param3d(x,y,z,35,45);\r
+p = gce(); //get the handle on 3D polyline\r
+title("3d curve","fontsize",3);\r
+curAxe = gca(); //handle on the currents axes\r
+curAxe.tight_limits = "on";\r
+\r
+\r
+//Use real time to slow down the animation loop\r
+//---------------------------------------------\r
+realtimeinit(0.03); //set time step (0.03 seconds)  and date reference\r
+for i=2:(max(size(I)))\r
+  realtime(i) //wait till date 0.1*i seconds\r
+  drawlater(); //disable automatic redrawing\r
+  p.data(:,3)=(I(i)*t/(np*%pi))'; //change the Z coordinates\r
+  curAxe.data_bounds(2,3)=I(i);  //change the max Z axes value\r
+  drawnow(); //enable automatic redraw\r
+  show_pixmap();//send  buffer to screen\r
+end\r
+\r
+\r
+// Reset initial properties\r
+//--------------------------------\r
+toolbar(id,tb);\r
+curFig.pixmap = pix;\r
diff --git a/scilab/modules/graphics/demos/anim/anim2/anim2_gateway.sce b/scilab/modules/graphics/demos/anim/anim2/anim2_gateway.sce
new file mode 100644 (file)
index 0000000..f085cd6
--- /dev/null
@@ -0,0 +1,15 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the evolution of a 3d curve
+// =============================================================================
+
+demo_begin();
+demo_message("SCI/modules/graphics/demos/anim/anim2/anim2.sce");
+demo_run("SCI/modules/graphics/demos/anim/anim2/anim2.sce");
+demo_end();
diff --git a/scilab/modules/graphics/demos/anim/anim3.dem b/scilab/modules/graphics/demos/anim/anim3.dem
deleted file mode 100644 (file)
index d634f13..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0)
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'xset(''pixmap'',1);';
-       '';
-       'if driver()==''Rec'' then';
-       '  driver(''X11'');';
-       'end';
-       '';
-       '//compute lorenz differential eqn solution';
-       'y=ode(1.e-8*[1;1;1],0,0:0.003:50,''loren'');';
-       '[n1,n2]=size(y);';
-       'wid=xget(''white'');';
-       'q=1:(n2/wid); //select color for each link';
-       'ds=xget(''dashes'');';
-       '';
-       'param3d(y(1,:),y(2,:),y(3,:),35,45,''X@Y@Z'',[2,4]);';
-       '';
-       'I=35:5:160;';
-       'realtimeinit(0.1);';
-       'for i=1:size(I,''*'')';
-       '  realtime(i)';
-       '  xset(''wwpc'');  //erase';
-       '  for j=1:wid;';
-       '    xset(''dashes'',j);';
-       '    tt= ((j-1)*(n2/wid)+1):(j*(n2/wid));';
-       '    param3d(y(1,tt),y(2,tt),y(3,tt),I(i),45,''X@Y@Z'',[0,0]);';
-       '  end';
-       '  xset(''wshow'');  //show';
-       'end'];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/anim3/anim3.sce b/scilab/modules/graphics/demos/anim/anim3/anim3.sce
new file mode 100644 (file)
index 0000000..1a65b88
--- /dev/null
@@ -0,0 +1,73 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the rotation of Lorentz curve
+// =============================================================================
+
+mode(0)
+
+curFig = gcf();clf();  // erase window
+xselect(); //raise the graphic window
+
+//turn off toolbar
+//----------------
+id=curFig.figure_id;
+tb=toolbar(id); //preserve setting
+toolbar(id,"off");
+
+// set double buffer mode to avoid blinking animation
+//---------------------------------------------------
+pix = curFig.pixmap; //preserve old setting
+curFig.pixmap = "on";
+
+//compute lorenz differential eqn solution
+//---------------------------------------------------
+  
+y=ode(1.e-8*[1;1;1],0,0:0.005:50,'loren');
+[n1,n2]=size(y);
+wid = size(curFig.color_map,1); //number of colors
+
+//Creates and set graphical entities which represent the surface
+//--------------------------------------------------------------
+// we split the full trajectory in a set of polylines, each of them
+// having a different color
+drawlater(); //disable automatic redrawing
+for j=1:wid;//loop on the colors
+  tt= ((j-1)*(n2/wid)+1):(j*(n2/wid));
+  param3d(y(1,tt),y(2,tt),y(3,tt));
+  e = gce(); //handle on the just created 3D polyline
+  e.foreground = j;//set its color
+end
+title("Lorentz curve","fontsize",3);
+
+curAxe = gca();
+curAxe.box = "off";
+curAxe.axes_visible = "off";
+curAxe.grid= [12,12,12];
+drawnow()
+
+//Set the evolution of the view angle  Alpha
+//---------------------------------------------------
+A=35:5:160;
+
+//animation loop
+//--------------
+//use realtime to slow down the loop
+realtimeinit(0.1);//set time step (0.1 seconds)  and date reference
+for i=1:max(size(A))
+  realtime(i) //wait till date 0.1*i seconds
+  curAxe.rotation_angles = [45,A(i)];
+  show_pixmap();  //send  buffer to screen
+end
+  
+
+// Reset initial properties
+//--------------------------------
+toolbar(id,tb);
+curFig.pixmap = pix;
+
diff --git a/scilab/modules/graphics/demos/anim/anim3/anim3_gateway.sce b/scilab/modules/graphics/demos/anim/anim3/anim3_gateway.sce
new file mode 100644 (file)
index 0000000..f3392f0
--- /dev/null
@@ -0,0 +1,15 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the rotation of Lorentz curve
+// =============================================================================
+
+demo_begin();
+demo_message("SCI/modules/graphics/demos/anim/anim3/anim3.sce");
+demo_run("SCI/modules/graphics/demos/anim/anim3/anim3.sce");
+demo_end();
diff --git a/scilab/modules/graphics/demos/anim/anim4.dem b/scilab/modules/graphics/demos/anim/anim4.dem
deleted file mode 100644 (file)
index 3c9109a..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0);
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'xset(''pixmap'',1);';
-       'xset(''wwpc'');';
-       't=-%pi:0.3:%pi;';
-       'contour(t,t,sin(t)''*cos(t),10,35,45,''X@Y@Z'',[0,2,4])';
-       'xset(''wshow'');';
-       'if driver()==''Pos'' then';
-       '  sp=5;';
-       'else';
-       '  sp=1;';
-       'end';
-       '';
-       'I=35:sp:80;';
-       '';
-       'realtimeinit(0.05);';
-       'for i=1:size(I,''*'')';
-       '  realtime(i)';
-       '  xset(''wwpc'');';
-       '  contour(t,t,sin(t)''*cos(t),10,I(i),45,''X@Y@Z'',[0,0,4])';
-       '  xset(''wshow'');';
-       'end';
-       '';
-       'I=45:sp:80';
-       '',
-       'realtimeinit(0.05);';
-       '';
-       'for i=1:size(I,''*'')';
-       '  realtime(i)';
-       '  xset(''wwpc'');';
-       '  contour(t,t,sin(t)''*cos(t),10,80,I(i),''X@Y@Z'',[0,0,4]);';
-       '  xset(''wshow'');';
-       'end';
-];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/anim4/anim4.sce b/scilab/modules/graphics/demos/anim/anim4/anim4.sce
new file mode 100644 (file)
index 0000000..17fb327
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the rotation of a 3D contour plot
+// =============================================================================
+
+mode(0);
+
+curFig = gcf();clf();  // erase window
+xselect(); //raise the graphic window
+
+//turn off toolbar
+//----------------
+id=curFig.figure_id;
+tb=toolbar(id); //preserve setting
+toolbar(id,"off");
+
+// set double buffer mode to avoid blinking animation
+//---------------------------------------------------
+pix = curFig.pixmap; //preserve old setting
+curFig.pixmap = "on";
+
+
+//The surface definition 
+//----------------------
+x=linspace(-%pi,%pi,50);
+y=x;
+Z=sin(x)'*cos(y);
+
+//Creates and set graphical entities which represent the surface
+//--------------------------------------------------------------
+
+contour(x,y,Z,10,35,45,'X@Y@Z',[0,2,4])
+title("rotation of a 3d contour","fontsize",3)
+curAxe = gca();        
+//Set the evolution of the view angle  Alpha
+//---------------------------------------------------
+A=35:80;
+//animation loop
+//--------------
+//use realtime to slow down the loop
+realtimeinit(0.05);//set time step (0.05 seconds)  and date reference
+for i=1:size(A,'*')
+  realtime(i)//wait till date 0.05*i seconds
+  curAxe.rotation_angles = [45,A(i)];
+  show_pixmap(); //send  buffer to screen
+end
+
+// Reset initial properties
+//--------------------------------
+toolbar(id,tb);
+curFig.pixmap = pix;
+
diff --git a/scilab/modules/graphics/demos/anim/anim4/anim4_gateway.sce b/scilab/modules/graphics/demos/anim/anim4/anim4_gateway.sce
new file mode 100644 (file)
index 0000000..7b9f81c
--- /dev/null
@@ -0,0 +1,15 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the rotation of a 3D contour plot
+// =============================================================================
+
+demo_begin();
+demo_message("SCI/modules/graphics/demos/anim/anim4/anim4.sce");
+demo_run("SCI/modules/graphics/demos/anim/anim4/anim4.sce");
+demo_end();
diff --git a/scilab/modules/graphics/demos/anim/anim5.dem b/scilab/modules/graphics/demos/anim/anim5.dem
deleted file mode 100644 (file)
index 9e984ca..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0);
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'xset(''pixmap'',1);';
-       'xselect();';
-       't=-%pi:0.3:%pi;';
-       'plot3d(t,t,sin(t)''*cos(t),35,45,''X@Y@Z'',[2,2,4]);';
-       'I=20:-1:1;';
-       'realtimeinit(0.1)';
-       'for i=1:size(I,''*'')';
-       '  realtime(i)';
-       '  xset(''wwpc'');';
-       '  plot3d1(t,t,sin((I(i)/10)*t)''*cos((I(i)/10)*t),35,45,'' '',[2,0,0])';
-       '  xset(''wshow'');';
-       'end'];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/anim5/anim5.sce b/scilab/modules/graphics/demos/anim/anim5/anim5.sce
new file mode 100644 (file)
index 0000000..8bb1bcf
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the evolution of a 3D surface
+// ============================================================================
+
+curFig = gcf();clf();  // erase window
+xselect(); //raise the graphic window
+
+//turn off toolbar
+//----------------
+id=curFig.figure_id;
+tb=toolbar(id); //preserve setting
+toolbar(id,"off");
+
+// set double buffer mode to avoid blinking animation
+//---------------------------------------------------
+pix = curFig.pixmap; //preserve old setting
+curFig.pixmap = "on";
+
+// set a new colormap 
+//-------------------
+cmap= curFig.color_map; //preserve old setting
+curFig.color_map = jetcolormap(64);
+
+//The initial surface definition 
+//----------------------
+x=linspace(-%pi,%pi,50);
+y=x;
+Z=sin(x)'*cos(y);
+
+//Creates and set graphical entities which represent the surface
+//--------------------------------------------------------------
+plot3d1(x,y,Z,35,45,' ');
+s=gce(); //the handle on the surface
+s.color_flag=1 ; //assign facet color according to Z value
+title("evolution of a 3d surface","fontsize",3)
+
+I=20:-1:1;
+realtimeinit(0.1);;//set time step (0.1 seconds)  and date reference
+for i=1:max(size(I))
+  realtime(i) //wait till date 0.1*i seconds
+  s.data.z = (sin((I(i)/10)*x)'*cos((I(i)/10)*y))';
+  show_pixmap();//send  buffer to screen
+end
+       
+
+// Reset initial properties
+//--------------------------------
+toolbar(id,tb);
+curFig.pixmap = pix;
+
diff --git a/scilab/modules/graphics/demos/anim/anim5/anim5_gateway.sce b/scilab/modules/graphics/demos/anim/anim5/anim5_gateway.sce
new file mode 100644 (file)
index 0000000..288d540
--- /dev/null
@@ -0,0 +1,15 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the evolution of a 3D surface
+// =============================================================================
+
+demo_begin();
+demo_message("SCI/modules/graphics/demos/anim/anim5/anim5.sce");
+demo_run("SCI/modules/graphics/demos/anim/anim5/anim5.sce");
+demo_end();
diff --git a/scilab/modules/graphics/demos/anim/anim6.dem b/scilab/modules/graphics/demos/anim/anim6.dem
deleted file mode 100644 (file)
index fae63fb..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0);
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'path=get_absolute_file_path(''anim6.dem'');';
-       'getf(path+''anim6.sci'');';
-       '';
-       'xselect();  //raise the graphic window';
-       'xset(''pixmap'',1)';
-       '';
-       'n=10;';
-       'r=1*ones(1,n);';
-       'm=1*ones(1,n);';
-       'j=1*ones(1,n);';
-       'g=9.81;';
-       'y0=0*ones(2*n,1);';
-       'yt=read(path+''yt.wrt'',20,201);  //load data';
-       'chainap(yt); //draw the animation'];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/anim6.sci b/scilab/modules/graphics/demos/anim/anim6.sci
deleted file mode 100644 (file)
index 59a8a59..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-function chainap(yt)
-  [n1,n2]=size(yt);
-  x=ones(n1/2,n2);
-  y=ones(n1/2,n2);
-  x(1,:)=2*r(1)*cos(yt(1,:));
-  y(1,:)=2*r(1)*sin(yt(1,:));
-  for i=2:n1/2, 
-    x(i,:)=x(i-1,:)+2*r(i)*cos(yt(i,:));
-    y(i,:)=y(i-1,:)+2*r(i)*sin(yt(i,:));
-  end
-  x=[0*ones(1,n2);x];
-  y=[0*ones(1,n2);y];
-  rr=r(1)/(n1+1);
-  rect=2*[-(n1/2+1),-(n1/2+1),n1/2+1,n1/2+1];
-  plot2d(0,0,[0],"012"," ",rect);
-  pix=xget('pixmap')
-  if driver()=='Pos' then st=3;xset('pixmap',1);else st=1;end
-  J=1:st:n2;
-  realtimeinit(0.05)
-  for j=1:size(J,'*')
-    realtime(j)
-    xset("wwpc");
-    xpoly(rect([1 3 3 1]),rect([2,2,4,4]),'lines',1)
-    chaindp([x(:,J(j)),y(:,J(j))],rr,rect);
-    xset("wshow");
-  end
-  xset('pixmap',pix)
-endfunction
-
-function chaindp(p,r,rect)
-//draw chain given sequence of points
-//!
-  [n,ign]=size(p);
-  th=xget("thickness");
-  xset("thickness",1)
-  arcs=[ -r ,r,2*r,2*r,0,64*360].*.ones(n,1);
-  arcs=[ p, 0*ones(n,4)] + arcs;
-  xarcs(arcs');
-  xset("thickness",4);
-  colors=1:n;colors(8)=n+1;
-  xpolys([p(1:(n-1),1),p(2:n,1)]',[p(1:(n-1),2),p(2:n,2)]',colors);
-  xset("thickness",th);
-endfunction
diff --git a/scilab/modules/graphics/demos/anim/anim6/anim6.sce b/scilab/modules/graphics/demos/anim/anim6/anim6.sce
new file mode 100644 (file)
index 0000000..1a86a4e
--- /dev/null
@@ -0,0 +1,74 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the dynamic of a chain
+// =============================================================================
+
+//Read the precomputed data of the chain evolution
+path=get_absolute_file_path('anim6.sce');
+yt=read(path+'yt.wrt',20,201);  //load data
+
+curFig = gcf();clf();  // erase window
+xselect(); //raise the graphic window
+
+//turn off toolbar
+//----------------
+id=curFig.figure_id;
+tb=toolbar(id); //preserve setting
+toolbar(id,"off");
+
+// set double buffer mode to avoid blinking animation
+//---------------------------------------------------
+pix = curFig.pixmap; //preserve old setting
+curFig.pixmap = "on";
+
+//The initial chain position definition 
+//-------------------------------------
+angles=yt(1:$/2,1);
+
+//Creates and set graphical entities which represent the surface
+//--------------------------------------------------------------
+
+r=ones(angles); //length of each link
+//coordinates of the links boundaries
+x=[0;cumsum(2*r.*cos(angles))];
+y=[0;cumsum(2*r.*sin(angles))];
+n1=size(x,'*');
+   
+//set the axes boundary
+curAxes=gca();
+curAxes.data_bounds=2*sum(r)*[-1,-1;1,0.1];
+title("N link pendulum movement","fontsize",3)
+
+colors=1:n1;colors(8)=n1+1;
+xpolys([x(1:($-1)),x(2:$)]',[y(1:($-1)),y(2:$)]',colors);
+e = gce(); //compound with 10 polylines as children
+e.children(:).thickness = 4;  
+
+//animation loop
+//--------------
+//use realtime to slow down the loop
+realtimeinit(0.04)//set time step (0.04 seconds)  and date reference
+for j=1:size(yt,2)
+  realtime(j)//wait till date 0.04*i seconds
+  drawlater();
+  angles=yt(1:$/2,j);
+  r=ones(angles); //length of each link
+  
+  x=[0;cumsum(2*r.*cos(angles))];
+  y=[0;cumsum(2*r.*sin(angles))];
+  n=size(r,'*');
+  for i = 1:n   
+    e.children(n+1-i).data = [x(i),  y(i); x(i+1),y(i+1)];
+  end
+  drawnow();show_pixmap()
+end
+// Reset initial properties
+//--------------------------------
+toolbar(id,tb);
+curFig.pixmap = pix;
diff --git a/scilab/modules/graphics/demos/anim/anim6/anim6.sci b/scilab/modules/graphics/demos/anim/anim6/anim6.sci
new file mode 100644 (file)
index 0000000..281c8f0
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+function chainap(yt)
+  [n1,n2]=size(yt);
+  x=ones(n1/2,n2);
+  y=ones(n1/2,n2);
+  x(1,:)=2*r(1)*cos(yt(1,:));
+  y(1,:)=2*r(1)*sin(yt(1,:));
+  for i=2:n1/2, 
+    x(i,:)=x(i-1,:)+2*r(i)*cos(yt(i,:));
+    y(i,:)=y(i-1,:)+2*r(i)*sin(yt(i,:));
+  end
+  x=[0*ones(1,n2);x];
+  y=[0*ones(1,n2);y];
+  rr=r(1)/(n1+1);
+  rect=2*[-(n1/2+1),-(n1/2+1),n1/2+1,n1/2+1];
+  plot2d(0,0,[0],"012"," ",rect);
+  show_pixmap();
+  if driver()=='Pos' then st=3;else st=1;end
+  J=1:st:n2;
+  p = [x(:,J(1)),y(:,J(1))];
+
+  [n,ign]=size(p);
+
+  arcs_base=[ -rr ,rr,2*rr,2*rr,0,64*360].*.ones(n,1);
+  arcs=[ p, 0*ones(n,4)] + arcs_base;
+  xarcs(arcs');
+  e1 = gce(); // coupound with 11 arcs as children
+  e1.children(:).thickness = 1;
+
+  colors=1:n;colors(8)=n+1;
+  xpolys([p(1:(n-1),1),p(2:n,1)]',[p(1:(n-1),2),p(2:n,2)]',colors);
+  e2 = gce(); //compound with 10 polylines as children
+  e2.children(:).thickness = 4;  
+  show_pixmap();
+  realtimeinit(0.04)
+  for j=1:max(size(J))
+    realtime(j)
+    drawlater();
+    p = [x(:,J(j)),y(:,J(j))];
+    arcs = [ p, 0*ones(n,4)] + arcs_base;
+    for i = 1:n-1      
+      e1.children(i).data = arcs(i,:);
+      e2.children(i).data(:,1) = [x(n-i,J(j)),x(n+1-i,J(j))]';
+      e2.children(i).data(:,2) = [y(n-i,J(j)),y(n+1-i,J(j))]';
+    end
+    drawnow();
+    show_pixmap();
+  end
+endfunction
+
diff --git a/scilab/modules/graphics/demos/anim/anim6/anim6_gateway.sce b/scilab/modules/graphics/demos/anim/anim6/anim6_gateway.sce
new file mode 100644 (file)
index 0000000..7853298
--- /dev/null
@@ -0,0 +1,15 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the dynamic of a chain
+// =============================================================================
+
+demo_begin();
+demo_message("SCI/modules/graphics/demos/anim/anim6/anim6.sce");
+demo_run("SCI/modules/graphics/demos/anim/anim6/anim6.sce");
+demo_end();
diff --git a/scilab/modules/graphics/demos/anim/anim7.dem b/scilab/modules/graphics/demos/anim/anim7.dem
deleted file mode 100644 (file)
index 48bbfc9..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0);
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'path=get_absolute_file_path(''anim7.dem'');';
-       'getf(path+''riemann.sci'');';
-       'demo_riemann();'];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/anim7/anim7.sce b/scilab/modules/graphics/demos/anim/anim7/anim7.sce
new file mode 100644 (file)
index 0000000..d41bfd1
--- /dev/null
@@ -0,0 +1,81 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the dynamic of a chain
+// =============================================================================
+
+curFig = gcf();clf();  // erase window
+xselect(); //raise the graphic window
+
+//turn off toolbar
+//----------------
+id=curFig.figure_id;
+tb=toolbar(id); //preserve setting
+toolbar(id,"off");
+
+// set double buffer mode to avoid blinking animation
+//---------------------------------------------------
+pix = curFig.pixmap; //preserve old setting
+curFig.pixmap = "on";
+
+//Create the data
+//---------------
+
+n=60;
+U = linspace(0,3*%pi,n);
+v = linspace(0,2*%pi,20);
+
+u = U(1:20);
+X = (cos(u).*u)'*(1+cos(v)/2);
+Y = (u/2)'*sin(v);
+Z = (sin(u).*u)'*(1+cos(v)/2);
+
+[xx,yy,zz]=nf3d(X,Y,Z);//build facets
+
+//Creates and set graphical entities which represent the surface
+//--------------------------------------------------------------
+
+plot3d(xx,yy,zz) //creates a Fac3d entity
+e = gce();
+data=e.data;
+title("shell","fontsize",3)
+
+curAxe=gca();
+// set 3D boundaries
+curAxe.data_bounds=[-15 -5 -10;
+                    10  5  12];
+//set view angles
+curAxe.rotation_angles=[152 62];
+
+//animation loop
+//--------------
+//use realtime to slow down the loop
+K=20:4:n;
+realtimeinit(0.1);//set time step (0.1 seconds)  and date reference
+for k=2:size(K,'*')
+  realtime(k);
+  //compute more facets
+  u=U(K(k-1):K(k));
+  X= (cos(u).*u)'*(1+cos(v)/2);
+  Y= (u/2)'*sin(v);
+  Z= (sin(u).*u)'*(1+cos(v)/2);
+  [xx,yy,zz]=nf3d(X,Y,Z);//build facets
+  //append new facets to the data data structure
+  data.x=[data.x xx];
+  data.y=[data.y yy];
+  data.z=[data.z zz];
+  
+  e.data=data;// update the Fac3d entity
+  show_pixmap();//send  buffer to screen
+end
+       
+// Reset initial properties
+//--------------------------------
+toolbar(id,tb);
+curFig.pixmap = pix;
+
diff --git a/scilab/modules/graphics/demos/anim/anim7/anim7_gateway.sce b/scilab/modules/graphics/demos/anim/anim7/anim7_gateway.sce
new file mode 100644 (file)
index 0000000..6df903c
--- /dev/null
@@ -0,0 +1,15 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+// =============================================================================
+// Demonstrate animation based on the dynamic of a chain
+// =============================================================================
+
+demo_begin();
+demo_message("SCI/modules/graphics/demos/anim/anim7/anim7.sce");
+demo_run("SCI/modules/graphics/demos/anim/anim7/anim7.sce");
+demo_end();
diff --git a/scilab/modules/graphics/demos/anim/anim8.dem b/scilab/modules/graphics/demos/anim/anim8.dem
deleted file mode 100644 (file)
index 600d433..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2005 - ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(0);
-
-// Hide the toolbar
-toolbar(0,'off');
-
-// Save the graphic context
-kp = xget('pixmap');
-
-string_to_display = [
-       'xset(''pixmap'',1);';
-       'xset(''wwpc'');  // clean pixmap';
-       'U = linspace(0,3*%pi,60);';
-       'v = linspace(0,2*%pi,20);';
-       'n=size(U,''*'');';
-       'realtimeinit(0.1);realtime(0)';
-       'K=20:4:n;';
-       'for k=1:size(K,''*'')';
-       '  u=U(1:K(k));';
-       '  x= (cos(u).*u)''*(1+cos(v)/2);';
-       '  y= (u/2)''*sin(v);';
-       '  z= (sin(u).*u)''*(1+cos(v)/2);';
-       '  realtime(k);';
-       '  plot3d2(x,y,z,-1,62,152,''X@Y@Z'',[10,1,4],[-15 10 -5 5 -10 12])';
-       '  xset(''wshow'')';
-       'end'];
-
-execstr(string_to_display);
-xset("pixmap",0);
-x_message(string_to_display);
-
-// Restore the graphic context
-xset('pixmap',kp);
-
-mode(-1);
diff --git a/scilab/modules/graphics/demos/anim/animxx.dem b/scilab/modules/graphics/demos/anim/animxx.dem
deleted file mode 100644 (file)
index fa1f31a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ENPC
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-mode(1)
-kp=xget("pixmap");
-if kp==0, xset("pixmap",1);end;
-np=10;
-t=0:0.1:np*%pi;
-param3d((t/(np*%pi)*%pi).*sin(t),(t/(np*%pi)*%pi).*cos(t),...
-               t/(np*%pi),35,45,'X@Y@Z',[2,4]);
-for i=45:1:(135),
-  xset("wwpc");
-  param3d((t/(np*%pi)*%pi).*sin(t),(t/(np*%pi)*%pi).*cos(t),...
-      t/(np*%pi),35,i,'X@Y@Z',[0,4]);
-  xset("wshow");
-end
-xset("pixmap",kp);
-
-
-
diff --git a/scilab/modules/graphics/demos/anim/riemann.sci b/scilab/modules/graphics/demos/anim/riemann.sci
deleted file mode 100644 (file)
index 2451648..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA
-//
-// This file is distributed under the same license as the Scilab package.
-//
-
-function demo_riemann()
-  //demo_help demo_riemann
-  xbasc();
-  //fs = get('figure_style');
-  //set figure_style old;
-  xselect()
-  C=hotcolormap(200);C=C(1:$-40,:); 
-  xset('wdim', 597,634);w=xget('window')
-  xset('colormap',C);xset('color',30);fond();
-  
-  [z,s]=cplxroot(4,35) //compute
-  xset('pixmap',1)
-  cplxmap(z,s,163,69)  //draw
-  xset('wshow')
-  realtimeinit(0.03)
-  for k=1:300,
-    realtime(k),
-    if modulo(k,10)==0 then
-      xset('wwpc')
-      cplxmap(z,s,163+k/10,69+k/20)  //draw
-      xset('wshow')
-    end
-
-  end
-  //set('figure_style',fs);
-  xdel(xget('window'))
-endfunction
-
-function fond()
-  n=size(xget('colormap'),1)
-  xset('background',n+1), 
-  xset('foreground',n+2);
-endfunction
-
-function cplxmap(z,w,varargin)
-//cplxmap(z,w,T,A,leg,flags,ebox)
-//cplxmap Plot a function of a complex variable.
-//       cplxmap(z,f(z))
-x = real(z);
-y = imag(z);
-u = real(w);v = imag(w);
-ncols=size(xget('colormap'),1)
-[X,Y,U]=nf3d(x,y,u);
-[X,Y,V]=nf3d(x,y,v);
-Colors = sum(V,'r');
-Colors = Colors - min(Colors);
-Colors = int((ncols-1)*Colors/max(Colors)+1);
-plot3d(X,Y,list(U,Colors),varargin(:))
-endfunction
-
-function [z,s]=cplxroot(n,m)
-//cplxroot(n,m,T,A,leg,flags,ebox)
-//CPLXROOT Riemann surface for the n-th root.
-//       CPLXROOT(n) renders the Riemann surface for the n-th root.
-//       CPLXROOT, by itself, renders the Riemann surface for the cube root.
-//       CPLXROOT(n,m) uses an m-by-m grid.  Default m = 20.
-// Use polar coordinates, (r,theta).
-// Cover the unit disc n times.
-[lhs,rhs]=argn(0)
-if rhs  < 1, n = 3; end
-if rhs  < 2, m = 20; end
-r = (0:m)'/m;
-theta = - %pi*(-n*m:n*m)/m;
-z = r * exp(%i*theta);
-s = r.^(1/n) * exp(%i*theta/n);
-endfunction
diff --git a/scilab/modules/graphics/demos/anim/~anim6.sci b/scilab/modules/graphics/demos/anim/~anim6.sci
deleted file mode 100644 (file)
index e7d767e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-function chainap(yt)
-// Copyright INRIA
-[n1,n2]=size(yt);
-x=ones(n1/2,n2);
-y=ones(n1/2,n2);
-x(1,:)=2*r(1)*cos(yt(1,:));
-y(1,:)=2*r(1)*sin(yt(1,:));
-for i=2:n1/2, 
-  x(i,:)=x(i-1,:)+2*r(i)*cos(yt(i,:));
-  y(i,:)=y(i-1,:)+2*r(i)*sin(yt(i,:));
-end
-x=[0*ones(1,n2);x];
-y=[0*ones(1,n2);y];
-rr=r(1)/(n1+1);
-rect=2*[-(n1/2+1),-(n1/2+1),n1/2+1,n1/2+1];
-plot2d(0,0,[0],"012"," ",rect);
-pix=xget('pixmap')
-if driver()=='Pos' then st=3;xset('pixmap',1);else st=1;end
-for j=1:st:n2,
-  xset("wwpc");
-  xpoly(rect([1 3 3 1]),rect([2,2,4,4]),'lines',1)
-  chaindp([x(:,j),y(:,j)],rr,rect);
-  xset("wshow");
-end
-xset('pixmap',pix)
-
-function chaindp(p,r,rect)
-//draw chain given sequence of points
-//!
-[n,ign]=size(p);
-th=xget("thickness");
-xset("thickness",1)
-arcs=[ -r ,r,2*r,2*r,0,64*360].*.ones(n,1);
-arcs=[ p, 0*ones(n,4)] + arcs;
-xarcs(arcs');
-xset("thickness",4);
-colors=1:n;colors(8)=n+1;
-xpolys([p(1:(n-1),1),p(2:n,1)]',[p(1:(n-1),2),p(2:n,2)]',colors);
-xset("thickness",th);