* Bugs 15878/880 fixed: evans & sgrid were broken 23/20623/5
Samuel GOUGEON [Mon, 19 Nov 2018 02:20:58 +0000 (03:20 +0100)]
  http://bugzilla.scilab.org/15878
  http://bugzilla.scilab.org/15880

Change-Id: I429465140932b115b8d0f7d7da31fb897c1e2272

41 files changed:
scilab/CHANGES.md
scilab/modules/cacsd/help/en_US/control_design/pole_placement/kpure.xml
scilab/modules/cacsd/help/en_US/linear_analysis/stability/evans.xml
scilab/modules/cacsd/help/en_US/linear_analysis/stability/sgrid.xml
scilab/modules/cacsd/help/ja_JP/linear_analysis/stability/evans.xml
scilab/modules/cacsd/help/ja_JP/linear_analysis/stability/sgrid.xml
scilab/modules/cacsd/help/pt_BR/linear_analysis/stability/evans.xml
scilab/modules/cacsd/help/pt_BR/linear_analysis/stability/sgrid.xml
scilab/modules/cacsd/macros/evans.sci
scilab/modules/cacsd/macros/sgrid.sci
scilab/modules/graphics/help/en_US/Graphics.xml
scilab/modules/graphics/help/fr_FR/Graphics.xml
scilab/modules/graphics/help/ja_JP/Graphics.xml
scilab/modules/graphics/help/ru_RU/Graphics.xml
scilab/modules/helptools/etc/images_md5.txt
scilab/modules/helptools/images/Graphics_37.png [new file with mode: 0644]
scilab/modules/helptools/images/Graphics_en_US_36.png
scilab/modules/helptools/images/Graphics_en_US_37.png [deleted file]
scilab/modules/helptools/images/Graphics_fr_FR_36.png
scilab/modules/helptools/images/Graphics_fr_FR_37.png [deleted file]
scilab/modules/helptools/images/Graphics_ja_JP_36.png
scilab/modules/helptools/images/Graphics_ja_JP_37.png [deleted file]
scilab/modules/helptools/images/Graphics_ru_RU_36.png
scilab/modules/helptools/images/Graphics_ru_RU_37.png [deleted file]
scilab/modules/helptools/images/evans_en_US_1.png
scilab/modules/helptools/images/evans_fr_FR_1.png
scilab/modules/helptools/images/evans_ja_JP_1.png
scilab/modules/helptools/images/evans_pt_BR_1.png
scilab/modules/helptools/images/evans_ru_RU_1.png
scilab/modules/helptools/images/kpure_1.png
scilab/modules/helptools/images/kpure_2.png
scilab/modules/helptools/images/sgrid_1.png
scilab/modules/helptools/images/sgrid_2.png [new file with mode: 0644]
scilab/modules/helptools/images/sgrid_3.png [new file with mode: 0644]
scilab/modules/helptools/images/sgrid_en_US_2.png [deleted file]
scilab/modules/helptools/images/sgrid_en_US_3.png [new file with mode: 0644]
scilab/modules/helptools/images/sgrid_fr_FR_2.png [deleted file]
scilab/modules/helptools/images/sgrid_fr_FR_3.png [new file with mode: 0644]
scilab/modules/helptools/images/sgrid_ja_JP_2.png [deleted file]
scilab/modules/helptools/images/sgrid_ru_RU_2.png [deleted file]
scilab/modules/helptools/images/sgrid_ru_RU_3.png [new file with mode: 0644]

index ad20254..96edffe 100644 (file)
@@ -653,6 +653,8 @@ Known issues
 * [#15847](http://bugzilla.scilab.org/show_bug.cgi?id=15847): Scilab crashed at startup.
 * [#15850](http://bugzilla.scilab.org/show_bug.cgi?id=15850): Adding a space after a string increases its size. 
 * [#15854](http://bugzilla.scilab.org/show_bug.cgi?id=15854): `horner(1:$,4)` yielded an error. Extractions from `cblock` tables were impacted.
+* [#15878](http://bugzilla.scilab.org/show_bug.cgi?id=15878): `sgrid` and `evans` were broken.
+* [#15880](http://bugzilla.scilab.org/show_bug.cgi?id=15880): `sgrid` needed some improvements: Labeling was sometimes ambiguous ; large circles were not labeled ; data_bounds did not always take the input wn into account ; named and #RRGGBB colors specifications could not be used. `evans` needed some improvements: the block of legends hid data ; asymptotes were too visible.
 * [#15890](http://bugzilla.scilab.org/show_bug.cgi?id=15890): `evstr` sometimes yielded some `+[]` warnings.
 * [#15920](http://bugzilla.scilab.org/show_bug.cgi?id=15920): genlib() did not regenerate a missing .bin if the .sci was unchanged (Scilab 6 regression)
 
index e3a18c0..c351e01 100644 (file)
@@ -80,7 +80,7 @@ den=real(poly([0.5 0.5  -6+7*%i  -6-7*%i  -3 -7 -11],'s'));
 h=num/den;
 
 [K,Y]=kpure(h)
-clf();evans(h)
+clf(); evans(h)
 plot(real(Y),imag(Y),'+r')
  ]]></programlisting>
         <scilab:image>
@@ -98,7 +98,7 @@ den=real(poly([1 1 3+%i*3 3-%i*3 -15+%i*7  -15-%i*7  -3 -7 -11],'s'));
 h=num/den;
 
 [K,Y]=kpure(h)
-clf();evans(h,100000)
+clf(); evans(h,100000)
 plot(real(Y),imag(Y),'+r')
  ]]></programlisting>
         <scilab:image>
index 8e37bce..7aeb5ed 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"  xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="evans">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook"  xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="evans">
     <refnamediv>
         <refname>evans</refname>
         <refpurpose>Evans root locus</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
-        <synopsis>evans(H [,kmax])</synopsis>
+        <synopsis>
+            evans(H)
+            evans(H, kmax)
+        </synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Arguments</title>
@@ -36,7 +42,8 @@
             <varlistentry>
                 <term>kmax</term>
                 <listitem>
-                    <para>real (maximum gain desired for the plot )</para>
+                    <para>real number: maximum gain desired for the plot.
+                    </para>
                 </listitem>
             </varlistentry>
         </variablelist>
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-    H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-    clf();evans(H,100);sgrid()
-    [Ki,s]=kpure(H) // Gains that give pure imaginary closed loop poles
-    plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
+H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+clf();
+evans(H,100);
+sgrid()
+
+// Post-tuning graphical elements
+ch = gca().children;
+curves = ch(2).children;
+curves.thickness = 2;
+asymptotes = ch(ch.type=="Segs");
+asymptotes.segs_color = color("grey70");
 
-    [Kr,s]=krac2(H)
+// Completing Evans plot:
+[Ki,s] = kpure(H) // Gains that give pure imaginary closed loop poles
+plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
+
+[Kr,s] = krac2(H)
     ]]></programlisting>
         <para>
-            <scilab:image localized="true">
-                H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-                clf();evans(H,100);sgrid()
-                [Ki,s]=kpure(H)
+            <scilab:image localized="true"><![CDATA[
+                H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+                clf();
+                gcf().axes_size = [610 470];
+                evans(H,100);
+                sgrid()
+
+                // Post-tuning graphical elements
+                ch = gca().children;
+                curves = ch(2).children;
+                curves.thickness = 2;
+                asymptotes = ch(ch.type=="Segs");
+                asymptotes.segs_color = color("grey70");
+
+                // Completing Evans plot:
+                [Ki,s] = kpure(H) // Gains that give pure imaginary closed loop poles
                 plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
 
-                [Kr,s]=krac2(H)
-            </scilab:image>
+                [Kr,s] = krac2(H)
+        ]]></scilab:image>
         </para>
     </refsection>
     <refsection role="see also">
         <title>See also</title>
         <simplelist type="inline">
             <member>
-                <link linkend="syslin">syslin</link>
-            </member>
-            <member>
                 <link linkend="sgrid">sgrid</link>
             </member>
             <member>
                 <link linkend="zgrid">zgrid</link>
             </member>
             <member>
+                <link linkend="syslin">syslin</link>
+            </member>
+            <member>
                 <link linkend="kpure">kpure</link>
             </member>
             <member>
index 164717e..546ad73 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="en" xml:id="sgrid">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="sgrid">
     <refnamediv>
         <refname>sgrid</refname>
-        <refpurpose>s-plane grid lines.</refpurpose>
+        <refpurpose>draws a s-plane grid</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
         <synopsis>
             sgrid()
-            sgrid(zeta,wn [,colors])
-            sgrid(['new',] zeta,wn [,colors])
-            sgrid(zeta,wn [,'new'] [,colors])
+            sgrid(zeta, wn)
+            sgrid(.., colors)
+            sgrid(.., "new")
         </synopsis>
     </refsynopsisdiv>
     <refsection>
                 <term>zeta</term>
                 <listitem>
                     <para>
-                        array of damping factors. Only values in <literal>[0
-                            1]
-                        </literal>
-                        are taken into account. The default value is
-                        <literal>[0 0.16 0.34 0.5 0.64 0.76 0.86 0.94 0.985
-                            1]
-                        </literal>
-                        .
+                        vector of damping factors. Only values in <literal>[0 1]</literal>
+                        are taken into account. The default values are ~ cosd(90:-10:0) =
+                        <literal>[0 0.17 0.34 0.5 0.64 0.77 0.87 0.94 0.985 1]</literal>.
                     </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>colors</term>
                 <listitem>
-                    <para>a scalar or an 2 element array  with integer values (color index).</para>
+                    <para>
+                        a scalar or a vector with 2 elements [circles_col, rays_col], specifying the
+                        color(s) of circles and rays of the frame, and their labels: predefined
+                        colors names (like "red"), or colors hexadecimal codes (like "#34DDFA"),
+                        or colors indices in the current colormap are accepted.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>"new"</term>
+                <listitem>
+                    <para>
+                        This option clears all contents of the current axes before plotting the grid.
+                        It may be specified at any position among input arguments.
+                    </para>
                 </listitem>
             </varlistentry>
         </variablelist>
     <refsection>
         <title>Description</title>
         <para>
-            Plots selected curves of constant damping ratio (selection given
-            by <literal>zeta</literal>) and constant natural frequency
-            (selection given by <literal>wn</literal>).
-        </para>
-        <para>
-            The <literal>colors</literal> argument may be used to assign a
-            color for constant damping ratio curves
-            (<literal>colors(2)</literal>) and for constant natural
-            frequency curves (<literal>colors(1)</literal>).
-        </para>
-        <para>
             The <literal>sgrid</literal> function is often used to draw a grid
-            for evens root locus of continuous time linear systems. In such a
+            for Evans root locus of continuous time linear systems. In such a
             case the <literal>sgrid</literal> function should be called after
             the call to <link linkend="evans">evans</link>. For discrete time linear
             systems one should use <link linkend="zgrid">zgrid</link> function instead.
         </para>
         <para>
-            The optional argument <literal>'new'</literal> can be used to
-            erase the graphic window before plotting the grid.
+            <literal>sgrid</literal> plots curves of constant damping ratio at values given
+            by <literal>zeta</literal>, and constant natural frequency at values given by
+            <literal>wn</literal>.
+        </para>
+        <para>
+            The <literal>colors</literal> argument may be used to assign a color for constant
+            damping ratio curves (<literal>colors(2)</literal>) and for constant natural
+            frequency curves (<literal>colors(1)</literal>).
+        </para>
+        <para>
+            <literal>sgrid(), sgrid("new"), sgrid(colors)</literal> or
+            <literal>sgrid(colors, "new")</literal> plots a default grid.
         </para>
     </refsection>
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-    //sgrid
-    clf();sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])
+clf
+subplot(1,2,1), sgrid([0:0.1:0.9 0.97 1], 0.5:0.5:3)
+subplot(1,2,2), sgrid("grey70")
     ]]></programlisting>
+        <scilab:image>
+            clf
+            subplot(1,2,1), sgrid([0:0.1:0.9 0.97 1], 0.5:0.5:3)
+            subplot(1,2,2), sgrid("grey70")
+        </scilab:image>
         <para>
-            <scilab:image>
-                sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])
-            </scilab:image>
+            Post-tuning graphical elements of the grid:
         </para>
         <programlisting role="example"><![CDATA[
-        H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-        clf();evans(H,100);sgrid()
+sgrid()
+
+sGrid = gca().children.children.children;
+i = find(sGrid(3:$).type=="Polyline" & sGrid(1:$-2).type=="Polyline",1);
+
+Circles = sGrid(1:i-1);
+Circ_text = Circles(Circles.type=="Text");      // Labels
+Circ_text.font_size = 2;
+Circ_lines = Circles(Circles.type=="Polyline"); // Circles
+Circ_lines.line_style = 8;
+
+Rays = sGrid(i:$);
+Rays(Rays.type=="Text").font_foreground = color("light slate blue");
+Rays_lines = Rays(Rays.type=="Polyline");
+set(Rays_lines, "line_style", 9, "thickness", 1.5);
         ]]></programlisting>
+            <scilab:image><![CDATA[
+                sgrid()
+
+                // Post-tuning graphical elements
+                // ------------------------------
+                sGrid = gca().children.children.children;
+                i = find(sGrid(3:$).type=="Polyline" & sGrid(1:$-2).type=="Polyline",1);
+
+                Circles = sGrid(1:i-1);
+                Circ_text = Circles(Circles.type=="Text");      // Labels
+                Circ_text.font_size = 2;
+                Circ_lines = Circles(Circles.type=="Polyline"); // Circles
+                Circ_lines.line_style = 8;
+
+                Rays = sGrid(i:$);
+                Rays(Rays.type=="Text").font_foreground = color("light slate blue");
+                Rays_lines = Rays(Rays.type=="Polyline");
+                set(Rays_lines, "line_style", 9, "thickness", 1.5);
+            ]]></scilab:image>
         <para>
-            <scilab:image localized="true">
-                H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-                clf();evans(H,100);sgrid()
-            </scilab:image>
+            Evans plot + a s grid:
+        </para>
+        <programlisting role="example"><![CDATA[
+H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+clf
+evans(H,100)
+sgrid()
+        ]]></programlisting>
+        <para>
+            <scilab:image localized="true"><![CDATA[
+                H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+                clf
+                gcf().axes_size = [610 470];
+                evans(H,100)
+                sgrid()
+            ]]></scilab:image>
         </para>
     </refsection>
     <refsection role="see also">
                 <link linkend="zgrid">zgrid</link>
             </member>
             <member>
-                <link linkend="datatips">datatips</link>
+                <link linkend="hallchart">hallchart</link>
+            </member>
+            <member>
+                <link linkend="nicholschart">nicholschart</link>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    colors can be specified by their names or by their #RRGGBB code
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 6182d50..cfed6d6 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"  xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="evans">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook"  xmlns:scilab="http://www.scilab.org"
+          xml:lang="ja" xml:id="evans">
     <refnamediv>
         <refname>evans</refname>
         <refpurpose>エバンス根軌跡</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>呼び出し手順</title>
-        <synopsis>evans(H [,kmax])</synopsis>
+        <synopsis>
+            evans(H)
+            evans(H, kmax)
+        </synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>引数</title>
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-    H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-    clf();evans(H,100);sgrid()
-    [Ki,s]=kpure(H) // Gains that give pure imaginary closed loop poles
-    plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
-    [Kr,s]=krac2(H)
+H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+clf();
+evans(H,100);
+sgrid()
+
+// Post-tuning graphical elements
+ch = gca().children;
+curves = ch(2).children;
+curves.thickness = 2;
+asymptotes = ch(ch.type=="Segs");
+asymptotes.segs_color = color("grey70");
+
+// Completing Evans plot:
+[Ki,s] = kpure(H) // Gains that give pure imaginary closed loop poles
+plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
+
+[Kr,s] = krac2(H)
     ]]></programlisting>
         <para>
-            <scilab:image localized="true">
-                H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-                clf();evans(H,100);sgrid()
-                [Ki,s]=kpure(H)
+            <scilab:image localized="true"><![CDATA[
+                H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+                clf();
+                gcf().axes_size = [610 470];
+                evans(H,100);
+                sgrid()
+
+                // Post-tuning graphical elements
+                ch = gca().children;
+                curves = ch(2).children;
+                curves.thickness = 2;
+                asymptotes = ch(ch.type=="Segs");
+                asymptotes.segs_color = color("grey70");
+
+                // Completing Evans plot:
+                [Ki,s] = kpure(H) // Gains that give pure imaginary closed loop poles
                 plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
-                [Kr,s]=krac2(H)
-            </scilab:image>
+
+                [Kr,s] = krac2(H)
+        ]]></scilab:image>
         </para>
     </refsection>
     <refsection role="see also">
         <title>参照</title>
         <simplelist type="inline">
             <member>
-                <link linkend="syslin">syslin</link>
-            </member>
-            <member>
                 <link linkend="sgrid">sgrid</link>
             </member>
             <member>
                 <link linkend="zgrid">zgrid</link>
             </member>
             <member>
+                <link linkend="syslin">syslin</link>
+            </member>
+            <member>
                 <link linkend="kpure">kpure</link>
             </member>
             <member>
index 8c14ebf..506f344 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="ja" xml:id="sgrid">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="ja" xml:id="sgrid">
     <refnamediv>
         <refname>sgrid</refname>
         <refpurpose>s平面のグリッド線.  </refpurpose>
@@ -22,9 +25,9 @@
         <title>呼び出し手順</title>
         <synopsis>
             sgrid()
-            sgrid(zeta,wn [,colors])
-            sgrid(['new',] zeta,wn [,colors])
-            sgrid(zeta,wn [,'new'] [,colors])
+            sgrid(zeta, wn)
+            sgrid(.., colors)
+            sgrid(.., "new")
         </synopsis>
     </refsynopsisdiv>
     <refsection>
                             1]
                         </literal>
                         の範囲の値が有効です.
-                        デフォルト値は
-                        <literal>[0 0.16 0.34 0.5 0.64 0.76 0.86 0.94 0.985
-                            1]
-                        </literal>
+                        デフォルト値はcosd(90:-10:0) ~
+                        <literal>[0 0.17 0.34 0.5 0.64 0.77 0.87 0.94 0.985 1]</literal>
                         です.
                     </para>
                 </listitem>
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-    //sgrid
-    clf();sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])
+clf
+subplot(1,2,1), sgrid([0:0.1:0.9 0.97 1], 0.5:0.5:3)
+subplot(1,2,2), sgrid("grey70")
     ]]></programlisting>
+        <scilab:image>
+            clf
+            subplot(1,2,1), sgrid([0:0.1:0.9 0.97 1], 0.5:0.5:3)
+            subplot(1,2,2), sgrid("grey70")
+        </scilab:image>
+        <para>
+            Post-tuning graphical elements of the grid:
+        </para>
+        <programlisting role="example"><![CDATA[
+sgrid()
+
+sGrid = gca().children.children.children;
+i = find(sGrid(3:$).type=="Polyline" & sGrid(1:$-2).type=="Polyline",1);
+
+Circles = sGrid(1:i-1);
+Circ_text = Circles(Circles.type=="Text");      // Labels
+Circ_text.font_size = 2;
+Circ_lines = Circles(Circles.type=="Polyline"); // Circles
+Circ_lines.line_style = 8;
+
+Rays = sGrid(i:$);
+Rays(Rays.type=="Text").font_foreground = color("light slate blue");
+Rays_lines = Rays(Rays.type=="Polyline");
+set(Rays_lines, "line_style", 9, "thickness", 1.5);
+        ]]></programlisting>
+        <para>
+            <scilab:image><![CDATA[
+                sgrid()
+
+                // Post-tuning graphical elements
+                // ------------------------------
+                sGrid = gca().children.children.children;
+                i = find(sGrid(3:$).type=="Polyline" & sGrid(1:$-2).type=="Polyline",1);
+
+                Circles = sGrid(1:i-1);
+                Circ_text = Circles(Circles.type=="Text");      // Labels
+                Circ_text.font_size = 2;
+                Circ_lines = Circles(Circles.type=="Polyline"); // Circles
+                Circ_lines.line_style = 8;
+
+                Rays = sGrid(i:$);
+                Rays(Rays.type=="Text").font_foreground = color("light slate blue");
+                Rays_lines = Rays(Rays.type=="Polyline");
+                set(Rays_lines, "line_style", 9, "thickness", 1.5);
+            ]]></scilab:image>
+        </para>
         <para>
-            <scilab:image>
-                sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])
-            </scilab:image>
+            Evans plot + an s grid:
         </para>
         <programlisting role="example"><![CDATA[
-        H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-        clf();evans(H,100);sgrid()
+H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+clf
+evans(H,100)
+sgrid()
+
+// All labels in violet
+sGrid = gca().children.children.children;
+sGrid(sGrid.type=="Text").font_foreground = color("light slate blue");
         ]]></programlisting>
         <para>
-            <scilab:image localized="true">
-                H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-                clf();evans(H,100);sgrid()
-            </scilab:image>
+            <scilab:image><![CDATA[
+                H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+                clf
+                gcf().axes_size = [610 470];
+                evans(H,100)
+                sgrid()
+
+                // All labels in violet
+                sGrid = gca().children.children.children;
+                sGrid(sGrid.type=="Text").font_foreground = color("light slate blue");
+            ]]></scilab:image>
         </para>
     </refsection>
     <refsection role="see also">
                 <link linkend="zgrid">zgrid</link>
             </member>
             <member>
-                <link linkend="datatips">datatips</link>
+                <link linkend="hallchart">hallchart</link>
+            </member>
+            <member>
+                <link linkend="nicholschart">nicholschart</link>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>履歴</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    colors can be specified by their names or by their #RRGGBB code
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 3c6543c..52c8a4b 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:id="evans" xml:lang="pt">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org"  xml:id="evans" xml:lang="pt">
     <refnamediv>
         <refname>evans</refname>
         <refpurpose>lugar geométrico das raízes Evans</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Seqüência de Chamamento</title>
-        <synopsis>evans(H [,kmax])</synopsis>
+        <synopsis>
+            evans(H)
+            evans(H, kmax)
+        </synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Parâmetros</title>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
-    H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-    clf();evans(H,100);sgrid()
-    [Ki,s]=kpure(H) // Gains that give pure imaginary closed loop poles
-    plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
+H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+clf();
+evans(H,100);
+sgrid()
+
+// Post-tuning graphical elements
+ch = gca().children;
+curves = ch(2).children;
+curves.thickness = 2;
+asymptotes = ch(ch.type=="Segs");
+asymptotes.segs_color = color("grey70");
+
+// Completing Evans plot:
+[Ki,s] = kpure(H) // Gains that give pure imaginary closed loop poles
+plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
 
-    [Kr,s]=krac2(H)
+[Kr,s] = krac2(H)
     ]]></programlisting>
         <para>
-            <scilab:image localized="true">
-                H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-                clf();evans(H,100);sgrid()
-                [Ki,s]=kpure(H)
+            <scilab:image localized="true"><![CDATA[
+                H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+                clf();
+                gcf().axes_size = [610 470];
+                evans(H,100);
+                sgrid()
+
+                // Post-tuning graphical elements
+                ch = gca().children;
+                curves = ch(2).children;
+                curves.thickness = 2;
+                asymptotes = ch(ch.type=="Segs");
+                asymptotes.segs_color = color("grey70");
+
+                // Completing Evans plot:
+                [Ki,s] = kpure(H) // Gains that give pure imaginary closed loop poles
                 plot([real(s) real(s)],[imag(s) -imag(s)],'*r')
 
-                [Kr,s]=krac2(H)
-            </scilab:image>
+                [Kr,s] = krac2(H)
+        ]]></scilab:image>
         </para>
     </refsection>
     <refsection>
         <title>Ver Também </title>
         <simplelist type="inline">
             <member>
+                <link linkend="sgrid">sgrid</link>
+            </member>
+            <member>
+                <link linkend="zgrid">zgrid</link>
+            </member>
+            <member>
+                <link linkend="syslin">syslin</link>
+            </member>
+            <member>
                 <link linkend="kpure">kpure</link>
             </member>
             <member>
                 <link linkend="krac2">krac2</link>
             </member>
             <member>
-                <link linkend="locate">locate</link>
+                <link linkend="datatips">datatips</link>
             </member>
         </simplelist>
     </refsection>
index ffd420c..13ee44c 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="sgrid" xml:lang="pt">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="sgrid" xml:lang="pt">
     <refnamediv>
         <refname>sgrid</refname>
         <refpurpose>esboça linhas de grid de um s-plano </refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Seqüência de Chamamento</title>
-        <synopsis>sgrid()
-            sgrid('new')
-            sgrid(zeta,wn [,color])
+        <synopsis>
+            sgrid()
+            sgrid(zeta, wn)
+            sgrid(.., colors)
+            sgrid(.., "new")
         </synopsis>
     </refsynopsisdiv>
     <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>zeta</term>
+                <listitem>
+                    <para>
+                        vector of damping factors. Only values in <literal>[0 1]</literal>
+                        are taken into account. The default values are ~ cosd(90:-10:0) =
+                        <literal>[0 0.17 0.34 0.5 0.64 0.77 0.87 0.94 0.985 1]</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>wn</term>
+                <listitem>
+                    <para>array of natural frequencies in Hz. only positive values are
+                        taken into account. If not given it is computed by the
+                        program to fit with the boundaries of the plot.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>colors</term>
+                <listitem>
+                    <para>
+                        a scalar or a vector with 2 elements [circles_col, rays_col], specifying the
+                        color(s) of circles and rays of the frame, and their labels: predefined
+                        colors names (like "red"), or colors hexadecimal codes (like "#34DDFA"),
+                        or colors indices in the current colormap are accepted.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>"new"</term>
+                <listitem>
+                    <para>
+                        This option clears all contents of the current axes before plotting the grid.
+                        It may be specified at any position among input arguments.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
         <title>Descrição</title>
         <para>Usado em conjunto com evans, esboça linhas de taxa de amortecimento
             constante (<literal>zeta</literal>) e freqüência natural
                 </listitem>
             </varlistentry>
             <varlistentry>
-                <term>sgrid('new')</term>
-                <listitem>
-                    <para>limpa a tela de gráficos e então esboça um grid de s-plano
-                        padrão
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
                 <term>sgrid(zeta,wn [,color])</term>
                 <listitem>
                     <para>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
-H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+clf
+subplot(1,2,1), sgrid([0:0.1:0.9 0.97 1], 0.5:0.5:3)
+subplot(1,2,2), sgrid("grey70")
+    ]]></programlisting>
+        <scilab:image>
+            clf
+            subplot(1,2,1), sgrid([0:0.1:0.9 0.97 1], 0.5:0.5:3)
+            subplot(1,2,2), sgrid("grey70")
+        </scilab:image>
+        <para>
+            Post-tuning graphical elements of the grid:
+        </para>
+        <programlisting role="example"><![CDATA[
+sgrid()
+
+sGrid = gca().children.children.children;
+i = find(sGrid(3:$).type=="Polyline" & sGrid(1:$-2).type=="Polyline",1);
+
+Circles = sGrid(1:i-1);
+Circ_text = Circles(Circles.type=="Text");      // Labels
+Circ_text.font_size = 2;
+Circ_lines = Circles(Circles.type=="Polyline"); // Circles
+Circ_lines.line_style = 8;
+
+Rays = sGrid(i:$);
+Rays(Rays.type=="Text").font_foreground = color("light slate blue");
+Rays_lines = Rays(Rays.type=="Polyline");
+set(Rays_lines, "line_style", 9, "thickness", 1.5);
+        ]]></programlisting>
+        <para>
+            <scilab:image><![CDATA[
+                sgrid()
+
+                // Post-tuning graphical elements
+                // ------------------------------
+                sGrid = gca().children.children.children;
+                i = find(sGrid(3:$).type=="Polyline" & sGrid(1:$-2).type=="Polyline",1);
+
+                Circles = sGrid(1:i-1);
+                Circ_text = Circles(Circles.type=="Text");      // Labels
+                Circ_text.font_size = 2;
+                Circ_lines = Circles(Circles.type=="Polyline"); // Circles
+                Circ_lines.line_style = 8;
+
+                Rays = sGrid(i:$);
+                Rays(Rays.type=="Text").font_foreground = color("light slate blue");
+                Rays_lines = Rays(Rays.type=="Polyline");
+                set(Rays_lines, "line_style", 9, "thickness", 1.5);
+            ]]></scilab:image>
+        </para>
+        <para>
+            Evans plot + an s grid:
+        </para>
+        <programlisting role="example"><![CDATA[
+H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+clf
 evans(H,100)
 sgrid()
-sgrid(0.6,2,7)
- ]]></programlisting>
+
+// All labels in violet
+sGrid = gca().children.children.children;
+sGrid(sGrid.type=="Text").font_foreground = color("light slate blue");
+        ]]></programlisting>
+        <para>
+            <scilab:image><![CDATA[
+                H = syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
+                clf
+                gcf().axes_size = [610 470];
+                evans(H,100)
+                sgrid()
+
+                // All labels in violet
+                sGrid = gca().children.children.children;
+                sGrid(sGrid.type=="Text").font_foreground = color("light slate blue");
+            ]]></scilab:image>
+        </para>
     </refsection>
     <refsection role="see also">
         <title>Ver Também</title>
@@ -75,6 +187,26 @@ sgrid(0.6,2,7)
             <member>
                 <link linkend="evans">evans</link>
             </member>
+            <member>
+                <link linkend="zgrid">zgrid</link>
+            </member>
+            <member>
+                <link linkend="hallchart">hallchart</link>
+            </member>
+            <member>
+                <link linkend="nicholschart">nicholschart</link>
+            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Histórico</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    colors can be specified by their name or by their #RRGGBB code.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 6b005e5..5469b07 100644 (file)
@@ -1,6 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2010 - INRIA - Serge STEER
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2018 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -8,20 +9,22 @@
 // and continues to be available under such terms.
 // For more information, see the COPYING file which you should have received
 // along with this program.
+
 function evans(n,d,kmax)
     // Seuil maxi et mini (relatifs) de discretisation en espace
     // Copyright INRIA
 
-    smax=0.002;smin=smax/3;
-    nptmax=2000 //nbre maxi de pt de discretisation en k
+    smax = 0.002;
+    smin = smax/3;
+    nptmax = 2000 //nbre maxi de pt de discretisation en k
 
     //Check syntax
 
     [lhs,rhs]=argn(0)
 
     if rhs <= 0 then   // demonstration
-        n=real(poly([0.1-%i 0.1+%i,-10],"s"));
-        d=real(poly([-1 -2 -%i %i],"s"));
+        n = real(poly([0.1-%i 0.1+%i,-10],"s"));
+        d = real(poly([-1 -2 -%i %i],"s"));
         evans(n,d,80);
         return
     end
@@ -42,7 +45,7 @@ function evans(n,d,kmax)
     if prod(size(n))<>1 then
         error(msprintf(_("%s: Wrong value for input argument #%d: Single input, single output system expected.\n"),"evans",1));
     end
-    if degree(n)<=0&degree(d)<=0 then
+    if degree(n)<=0 & degree(d)<=0 then
         error(msprintf(_("%s: The given system has no poles and no zeros.\n"),"evans"));
     end
 
@@ -117,54 +120,62 @@ function evans(n,d,kmax)
     end
     //draw the axis
     x1 =[nroots;matrix(racines,md*nr,1)];
-    xmin=min(real(x1));xmax=max(real(x1))
-    ymin=min(imag(x1));ymax=max(imag(x1))
-    dx=abs(xmax-xmin)*0.05
-    dy=abs(ymax-ymin)*0.05
-    if dx<1d-10, dx=0.01,end
-    if dy<1d-10, dy=0.01,end
-    legs=[],lstyle=[];lhandle=[]
-    rect=[xmin-dx;ymin-dy;xmax+dx;ymax+dy];
+    [xmin, xmax] = (min(real(x1)), max(real(x1)));
+    [ymin, ymax] = (min(imag(x1)), max(imag(x1)));
+    dx = abs(xmax-xmin)*0.05
+    dy = abs(ymax-ymin)*0.05
+    if dx<1d-10, dx = 0.01, end
+    if dy<1d-10, dy = 0.01, end
+    [legs, lstyle, lhandle] = ([],[],[]);
+    rect = [xmin-dx; ymin-dy ;xmax+dx; ymax+dy];
     f=gcf();
     immediate_drawing= f.immediate_drawing;
     f.immediate_drawing = "off";
-    a=gca();
+    a = gca();
     if a.children==[]
-        a.data_bounds=[rect(1) rect(2);rect(3) rect(4)];
+        data_bounds = rect([1 3 2 4]);
         a.axes_visible="on";
-        a.title.text=_("Evans root locus");
-        a.x_label.text=_("Real axis");
-        a.y_label.text=_("Imaginary axis");
-        axes.clip_state = "clipgrf";
+        a.clip_state = "clipgrf";
+        title(_("Evans root locus"), "fontsize",2);
+        xlabel(_("Real axis"));
+        ylabel(_("Imaginary axis"));
     else //enlarge the boundaries
-        a.data_bounds=[min(a.data_bounds(1,:),[rect(1) rect(2)]);
-        max(a.data_bounds(2,:),[rect(3) rect(4)])];
-
+        data_bounds =[min(a.data_bounds(1,:),[rect(1) rect(2)]);
+                      max(a.data_bounds(2,:),[rect(3) rect(4)])];
     end
     if nroots<>[] then
         xpoly(real(nroots),imag(nroots))
-        e=gce();e.line_mode="off";e.mark_mode="on";
-        e.mark_size_unit="point";e.mark_size=7;e.mark_style=5;
-        legs=[legs; _("open loop zeroes")]
-        lhandle=[lhandle; e];
+        e = gce();
+        e.line_mode = "off";
+        e.mark_mode = "on";
+        e.mark_size_unit = "point";
+        e.mark_size  = 7;
+        e.mark_style = 5;
+        legs = [legs; _("open loop zeros")]
+        lhandle = [lhandle; e];
     end
     if racines<>[] then
         xpoly(real(racines(:,1)),imag(racines(:,1)))
-        e=gce();e.line_mode="off";e.mark_mode="on";
-        e.mark_size_unit="point";e.mark_size=7;e.mark_style=2;
-        legs=[legs;_("open loop poles")]
-        lhandle=[lhandle; e];
+        e = gce();
+        e.line_mode = "off";
+        e.mark_mode = "on";
+        e.mark_size_unit = "point";
+        e.mark_size  = 7;
+        e.mark_style = 2;
+        legs = [legs;_("open loop poles")]
+        lhandle = [lhandle; e];
     end
-    dx=max(abs(xmax-xmin),abs(ymax-ymin));
+    dx = max(abs(xmax-xmin),abs(ymax-ymin));
     //plot the zeros locations
 
 
     //computes and draw the asymptotic lines
-    m=degree(n);q=md-m
+    m = degree(n);
+    q = md - m
     if q>0 then
-        la=0:q-1;
-        so=(sum(racines(:,1))-sum(nroots))/q
-        i1=real(so);i2=imag(so);
+        la = 0:q-1;
+        so = (sum(racines(:,1))-sum(nroots))/q
+        i1 = real(so);i2=imag(so);
         if prod(size(la))<>1 then
             ang1=%pi/q*(ones(la)+2*la)
             x1=dx*cos(ang1),y1=dx*sin(ang1)
@@ -177,13 +188,17 @@ function evans(n,d,kmax)
             end,
         end;
         if max(k)>0 then
+            col = color("grey50");
             xpoly(i1,i2);
-            e=gce();
-            legs=[legs;_("asymptotic directions")]
-            lhandle=[lhandle; e];
-
+            e = gce();
+            e.foreground = col;
+            legs = [legs; _("asymptotic directions")]
+            lhandle = [lhandle; e];
             a.clip_state = "clipgrf";
-            for i=1:q,xsegs([i1,x1(i)+i1],[i2,y1(i)+i2]),end,
+            for i = 1:q
+                xsegs([i1,x1(i)+i1],[i2,y1(i)+i2])
+                gce().segs_color = col;
+            end
             //      a.clip_state = "off";
         end
     end;
@@ -191,7 +206,8 @@ function evans(n,d,kmax)
     [n1,n2]=size(racines);
 
     // assign the colors for each root locus
-    cmap=f.color_map;cols=1:size(cmap,1);
+    cmap = f.color_map;
+    cols = 1:size(cmap,1);
     if a.background==-2 then
         cols(and(cmap==1,2))=[]; //remove white
     elseif a.background==-1 then
@@ -199,10 +215,10 @@ function evans(n,d,kmax)
     else
         cols(a.background)=[];
     end
-    cols=cols(modulo(0:n1-1,size(cols,"*"))+1);
+    cols = cols(modulo(0:n1-1,size(cols,"*"))+1);
 
     //draw the root locus
-    xpolys(real(racines)',imag(racines)',cols)
+    xpolys(real(racines)', imag(racines)',cols)
     //set info for datatips
     E=gce();
 
@@ -210,13 +226,15 @@ function evans(n,d,kmax)
         E.children(k).display_function = "formatEvansTip";
         E.children(k).display_function_data = kk;
     end
-    c=captions(lhandle,legs($:-1:1),"in_upper_right")
-    c.background=a.background;
+    c = captions(lhandle,legs($:-1:1),"lower_caption")
+    c.background = a.background;
 
+    a.data_bounds = data_bounds;
     f.immediate_drawing = immediate_drawing;
 
     if fin=="nptmax" then
-        warning(msprintf(gettext("%s: Curve truncated to the first %d discretization points.\n"),"evans",nptmax))
+        msg = gettext("%s: Curve truncated to the first %d discretization points.\n")
+        warning(msprintf(msg,"evans",nptmax))
     end
 endfunction
 
index 3a86948..b8166c9 100644 (file)
@@ -1,6 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2010 - INRIA - Serge STEER
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2018 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // along with this program.
 
 function sgrid(varargin)
-    // sgrid(["new",] [,Z,Wn [,colors]])
-    // sgrid(Z,Wn [,"new"] [,colors])
-
-    defaultcolors=[4 12];
-    defaultbounds=[-1.6,-1.6;0,1.6];
-    rhs=argn(2)
-    new=%f
-    if rhs>=1 then
-        if type(varargin(1))==10 then
-            if varargin(1)<>"new" then
-                error(msprintf(_("%s: Wrong value for input argument #%d: ''%s'' expected.\n"),"sgrid",1,"new"))
-            end
-            varargin(1)=null()
-            rhs=rhs-1
-            new=%t
-        end
+    //    sgrid()
+    //    sgrid(zeta, wn)
+    //    sgrid(.., colors)
+    //    sgrid(.., "new") // at any position
+
+    colors = [color("cyan") color("skyblue1")];  // [circles, rays]
+    defaultbounds = [-1.6,-1.6;0,1.6];
+    defaultZeta = [0 0.17 0.34 0.5 0.64 0.77 0.87 0.94 0.985 1];
+
+    // CHECKING INPUT ARGUMENTS
+    // ========================
+    if argn(2) > 4 then
+        msg = _("%s: Wrong number of input arguments: %d to %d expected.\n")
+        error(msprintf(msg, "sgrid", 0, 4))
     end
-    if rhs>=3 then
-        if type(varargin(3))==10 then
-            if varargin(3)<>"new" then
-                error(msprintf(_("%s: Wrong value for input argument #%d: ''%s'' expected.\n"),"sgrid",3,"new"))
-            end
-            varargin(3)=null()
-            rhs=rhs-1
-            new=%t
+
+    // New?
+    // ----
+    new = 0;
+    i = 1
+    while length(varargin)>0 & i <= length(varargin)
+        a = varargin(i)
+        if type(a)==10 & a(1)=="new"
+            new = i
+            varargin(i) = null()
+            break
+        else
+            i = i+1
         end
     end
+    rhs = length(varargin)
 
-    defaultwn=%f;
-    defaultzeta=[0 0.16 0.34 0.5 0.64 0.76 0.86 0.94 0.985 1]
-
-    select rhs
-    case 0 then  //sgrid() or sgrid("new")
-        defaultwn=%t
-        zeta = defaultzeta
-        colors = defaultcolors
-    case 2 then
+    // zeta, wn
+    // --------
+    defaultwn = %f;
+    if or(rhs==[0 1]) then
+        zeta = defaultZeta
+        defaultwn = %t
+        j = 1;
+    else
         zeta =  varargin(1)
-        if type(zeta)<>1|~isreal(zeta) then
-            error(msprintf(_("%s: Wrong type for input argument #%d : real floating point array expected\n"),"sgrid",1));
+        if type(zeta)<>1 | ~isreal(zeta) then
+            msg = _("%s: Wrong type for input argument #%d : real floating point array expected\n")
+            j = 1; if new & new<2, j = 2, end
+            error(msprintf(msg, "sgrid", j));
         end
+        zeta = zeta(zeta>=0 & zeta<=1)
+        // if zeta==[], zeta = defaultZeta, end
+
         wn = varargin(2)
-        if type(wn)<>1|~isreal(wn) then
-            error(msprintf(_("%s: Wrong type for input argument #%d : real floating point array expected\n"),"sgrid",2));
+        if type(wn)<>1 | ~isreal(wn) then
+            msg = _("%s: Wrong type for input argument #%d : real floating point array expected\n")
+            j = 2; if new & new<3, j = 3, end
+            error(msprintf(msg, "sgrid", j));
         end
-        colors = defaultcolors
-    case 3 then
-        zeta =  varargin(1)
-        if type(zeta)<>1|~isreal(zeta) then
-            error(msprintf(_("%s: Wrong type for input argument #%d : real floating point array expected\n"),"sgrid",1));
+        wn = abs(wn)
+        // if wn==[], defaultwn = %t, end
+        j = 3;
+    end
+
+    // colors
+    // ------
+    if length(varargin)>=j
+        rgb = iscolor(varargin(j), "1#a")
+        if new & new<=j, j = j+1, end
+        if size(rgb,1)>2
+            msg = _("%s: Argument #%d: Scalar or vector with %d components expected.\n")
+            error(msprintf(msg, "sgrid", j, 2));
         end
-        wn = varargin(2)
-        if type(wn)<>1|~isreal(wn) then
-            error(msprintf(_("%s: Wrong type for input argument #%d : real floating point array expected\n"),"sgrid",2));
+        if or(rgb==-1)
+            msg = _("%s: Argument #%d: Wrong color specification.\n")
+            error(msprintf(msg, "sgrid", j));
         end
-        colors = varargin(3)
-        if type(colors)<>1|~isreal(colors) then
-            error(msprintf(_("%s: Wrong type for input argument #%d : real floating point array expected\n"),"sgrid",3));
+        if size(rgb,1)==1 then
+            rgb = [1;1]*rgb
         end
-        if size(colors,"*")==1 then colors=colors*ones(1,2),end
+        colors = addcolor(rgb)
     end
-    zeta=zeta(zeta>=0&zeta<=1)
-    fig=gcf();
-    immediate_drawing=fig.immediate_drawing;
-    fig.immediate_drawing="off";
 
-    axes=gca();
-    if new&axes.children<>[] then
+    // Graphics initializations
+    // ------------------------
+    fig = gcf();
+    immediate_drawing = fig.immediate_drawing;
+    fig.immediate_drawing = "off";
+    axes = gca();
+    if new & axes.children<>[] then
         delete(axes.children)
     end
-    nc=size(axes.children,"*")
+    nc = size(axes.children,"*")
     if nc==0 then
-        axes.data_bounds=defaultbounds
-        axes.axes_visible="on";
-        ax.box="on";
+        if defaultwn
+            data_bounds = defaultbounds;
+        else
+            data_bounds = [-1 0 -1 1]*max(wn)
+        end
+        axes.data_bounds = data_bounds;
+        axes.axes_visible = "on";
+        ax.box = "on";
     else
-        axes.data_bounds=[min(defaultbounds(1,:),axes.data_bounds(1,:));
-        max(defaultbounds(2,:),axes.data_bounds(2,:))];
+        data_bounds = [min(defaultbounds(1,:), axes.data_bounds(1,:));
+                       max(defaultbounds(2,:), axes.data_bounds(2,:))];
     end
-    if axes.tight_limits=="off"&axes.auto_ticks(1)=="on" then
-        xmin=axes.x_ticks.locations(1)
-        xmax=axes.x_ticks.locations($)
-    else
-        xmin=axes.data_bounds(1,1)
-        xmax=axes.data_bounds(2,1)
+
+    if axes.tight_limits(1)=="off" & axes.auto_ticks(1)=="on" then
+        data_bounds([1 2]) = [min(data_bounds(1), min(axes.x_ticks.locations)) ..
+                              max(data_bounds(2), max(axes.x_ticks.locations))]
     end
-    if axes.tight_limits=="off"&axes.auto_ticks(2)=="on" then
-        ymin=axes.y_ticks.locations(1)
-        ymax=axes.y_ticks.locations($)
-    else
-        ymin=axes.data_bounds(1,2)
-        ymax=axes.data_bounds(2,2)
+    if axes.tight_limits(2)=="off" & axes.auto_ticks(2)=="on" then
+        data_bounds([3 4]) = [min(data_bounds(3), min(axes.y_ticks.locations)) ..
+                              max(data_bounds(4), max(axes.y_ticks.locations))]
     end
 
-    //iso natural frequency curves
+    db = data_bounds;
+    [xmin, xmax, ymin, ymax] = (db(1), db(2), db(3),db(4));
+
+    //iso natural frequency curves (circles centered on (0,0))
+    // -------------------------------------------------------
     if defaultwn then
-        rmax=sqrt(min(xmin^2+ymin^2,xmin^2+ymax^2))
-        rmax=floor(10*rmax)/10;
-        [xi,xa,np]=graduate(0.2,rmax,8,12)
-        wn=linspace(xi,xa,np)
+        rmax = sqrt(min(xmin^2+ymin^2,xmin^2+ymax^2))
+        rmax = floor(10*rmax)/10;
+        [xi, xa, tmp, np] = xgraduate(0,rmax);
+        wn = linspace(xi,xa,np+1)
+        wn($) = [];
     end
-    wn=wn(wn>=0)
-    t=linspace(%pi/2,1.5*%pi,200)
-    chart_handles=[]
-    for i=1:size(wn,"*")
-        xpoly(wn(i)*cos(t),wn(i)*sin(t))
-        ec=gce();
-        ec.display_function = "formatSgridFreqTip";
-        ec.display_function_data = wn(i);
 
-        ec.foreground=colors(1),
-        ec.line_style=7;
-        ec.clip_state="clipgrf";
-
-        lab=msprintf("%.2g",wn(i))
-        r=xstringl(0,wn(i),lab)
-        if %t then
-            xstring(-r(3),wn(i),lab)
-            es1=gce();
-            es1.font_foreground=colors(1),
-            es1.clip_state="clipgrf";
-            xstring(-r(3),-wn(i)-r(4),lab)
-            es2=gce();
-            es2.font_foreground=colors(1),
-            es2.clip_state="clipgrf";
-            e=glue([es2 es1 ec])
-        else
-            xstring(-wn(i)-r(3),0,lab)
-            es1=gce();
-            es1.font_foreground=colors(1),
-            es1.clip_state="clipgrf";
-            e=glue([es1 ec]);
-        end
-        chart_handles=[e chart_handles]
+    // Setting the angle of radial labels
+    axes_size = gcf().axes_size .* axes.axes_bounds(3:4);
+    m = axes.margins;
+    h = 1-sum(axes.margins(3:4));
+    w = 1-sum(axes.margins(1:2));
+    //axes_size = axes_size .* [w h];
+    f = axes_size(1) / axes_size(2);
+    f2 = abs((xmin)/(ymax-ymin));
+    if abs(ymin) >= abs(ymax) then
+        diag_angle = atan(ymin, xmin)
+    else
+        diag_angle = atan(ymax, xmin)
     end
-    //iso damping factor curves
-    angl=acos(zeta)
 
-    for i=1:size(zeta,"*")
-        lab=string(zeta(i))
-        rect=xstringl(0,0,lab)
+    // Typical text size
+    rect = xstringl(1,1,"0.3")
+    w = rect(3);
+    h = rect(4);   // prone to http://bugzilla.scilab.org/13661 , so:
+    h = w*0.5/(xmax-xmin)*(ymax-ymin);
 
-        sa=sin(angl(i));ca=cos(angl(i))
-        if sa==0 then sa=%eps;end
-        if ca==0 then ca=%eps;end
-        r=min(-ymin/sa,-xmin/ca)
+    // Drawing circles and radial labels
+    wn = wn(wn>=0)
+    t = linspace(%pi/2,1.5*%pi,200)
+    chart_handles = []
+    for i = 1:size(wn,"*")
+        // Circle
+        xpoly(wn(i)*cos(t), wn(i)*sin(t))
+        ec = gce();
+        ec.display_function = "formatSgridFreqTip";
+        ec.display_function_data = wn(i);
+        ec.foreground = colors(1),
+        ec.line_style = 7;
+        ec.clip_state = "clipgrf";
 
-        xpoly([0 -r*ca],[0 -r*sa])
-        ec=gce();
-        ec.display_function = "formatSgridDampingTip";
-        ec.display_function_data = zeta(i);
+        // Labels
+        lab = msprintf("%.2g",wn(i))
+        r = xstringl(0, wn(i), lab)
+        xstring(w/3, wn(i)-h*1.5, lab)
+        xstring(w/3, -wn(i)-h*0.5, lab)
+        xstring(wn(i)*cos(diag_angle), wn(i)*sin(diag_angle), lab)
+        lab = gce().parent.children(1:3);
+        if i==1, lab(2:3).visible = "off"; end // 0 only once
+        lab.font_foreground = colors(1),
+        lab(1).clip_state = "clipgrf";
+        if -wn(i)<ymin, lab(2).clip_state = "clipgrf"; end
+        if  wn(i)>ymax, lab(3).clip_state = "clipgrf"; end
+        lab(1).text_box = [0 0];
+        lab(1).text_box_mode = "centered";
+        e = glue([lab ; ec])
 
-        ec.foreground=colors(2),
-        ec.line_style=7;
-        ec.clip_state="clipgrf";
-        if -ymin/sa<-xmin/ca
-            r1=r-rect(4)/sa
-            xstring(-r1*ca-rect(3),-r1*sa,lab)
+        chart_handles = [e chart_handles]
+    end
+
+    // iso damping factor curves
+    // -------------------------
+    angl = acos(zeta)
+    for i = 1:size(zeta,"*")
+        lab = string(zeta(i))
+        rect = xstringl(0,0,lab)
+
+        a = angl(i)
+        ta = tan(a);
+        if a==0
+            xpoly([0 xmin],[0 0])
+            xstring(xmin, -h/6, lab)
+            xpoly([0 xmin],[0 0])
+            xstring(xmin, -h/6, lab)
         else
-            xstring(-r*ca+0.02*rect(3),-r*sa,lab)
+            // upper
+            y = min(-xmin*ta, ymax)
+            xpoly([0 -y/ta],[0 y])
+            if y < ymax-h/2
+                xstring(xmin, y-h/7, lab)
+            else
+                xstring((-y+h)/ta, ymax-h, lab) // , a*180/%pi
+                set(gce(), "text_box", [0 0], "text_box_mode", "centered");
+            end
+            // lower
+            y = max(xmin*ta, ymin)
+            xpoly([0 y/ta],[0 y])
+            if y > ymin
+                xstring(xmin, y-h/6, lab)
+            else
+                xstring((y+h)/ta, ymin+h, lab) // , -a*180/%pi
+                set(gce(), "text_box", [0 0], "text_box_mode", "centered");
+            end
         end
-        es=gce();
-        es.font_foreground=colors(2),
-        es.clip_state="clipgrf";
-        chart_handles=[glue([es ec]),chart_handles]
-
-        r=min(ymax/sa,-xmin/ca)
-        xpoly([0 -r*ca],[0 r*sa])
-        ec=gce();
+        // rays
+        ec = gce().parent.children([2 4]);
         ec.display_function = "formatSgridDampingTip";
         ec.display_function_data = zeta(i);
+        ec.foreground = colors(2),
+        ec.line_style = 7;
+        ec.clip_state = "clipgrf";
+        // labels
+        et = gce().parent.children([1 3]);
+        et.font_foreground = colors(2),
+        et.clip_state = "clipgrf";
+        // handles
+        chart_handles = [glue([et(1) ec(1)]), glue([et(2) ec(2)]), chart_handles]
 
-        ec.foreground=colors(2),
-        ec.line_style=7;
-        ec.clip_state="clipgrf";
-        if ymax/sa<-xmin/ca then
-            xstring(-r*ca-rect(3),r*sa-rect(4),lab)
-        else
-            xstring(-r*ca,r*sa,lab)
-        end
-        es=gce();
-        es.font_foreground=colors(2),
-        es.clip_state="clipgrf";
-        chart_handles=[glue([es ec]),chart_handles]
     end
-    chart_handles=glue(chart_handles)
+    chart_handles = glue(chart_handles)
+
     //reorder axes children to make chart drawn before the black previously
     // drawn curves if any
-    for k=1:nc
-        swap_handles(axes.children(k),axes.children(k+1))
+    for k = 1:nc
+        swap_handles(axes.children(k), axes.children(k+1))
     end
-    fig.immediate_drawing=immediate_drawing;
+
+    axes.data_bounds = data_bounds;
+    fig.immediate_drawing = immediate_drawing;
     show_window()
 endfunction
index fe9bbb7..f71e085 100644 (file)
                         <emphasis role="bold">Example:</emphasis>
                     </para>
                     <para>
-                        <scilab:image localized="true">sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
+                        <scilab:image>sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
                     </para>
                 </listitem>
             </varlistentry>
index 9df6acf..2bc6e6c 100644 (file)
                         <emphasis role="bold">Exemple:</emphasis>
                     </para>
                     <para>
-                        <scilab:image localized="true">sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
+                        <scilab:image>sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
                     </para>
                 </listitem>
             </varlistentry>
index cd88621..917dc57 100644 (file)
                         <emphasis role="bold">例:</emphasis>
                     </para>
                     <para>
-                        <scilab:image localized="true">sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
+                        <scilab:image>sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
                     </para>
                 </listitem>
             </varlistentry>
index 5d4977c..74e0536 100644 (file)
                         <emphasis role="bold">Пример:</emphasis>
                     </para>
                     <para>
-                        <scilab:image localized="true">sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
+                        <scilab:image>sgrid(0:0.2:1,[0.2 0.6 1 1.7 2])</scilab:image>
                     </para>
                 </listitem>
             </varlistentry>
index 830e015..5d03d02 100644 (file)
@@ -78,6 +78,7 @@ Graphics_32.png=26826b399f567100ed0118a54c896b5a
 Graphics_33.png=d23142ccde9162c1dd911048a34bad42
 Graphics_34.png=d23142ccde9162c1dd911048a34bad42
 Graphics_35.png=d23142ccde9162c1dd911048a34bad42
+Graphics_37.png=76950c3a78d543018ca046b7e5709d88
 Graphics_4.png=ca17ee46fae89a343407d090111051b5
 Graphics_5.png=6e915789427344f2111be90b463014b3
 Graphics_6.png=e830cf073e36fb2c95cf85a9eee02c52
@@ -88,7 +89,6 @@ Graphics_en_US_33.png=caffc3a1e808e6c77f4b3507ccf2244d
 Graphics_en_US_34.png=2297699ec06e47b2fe0a18a86fd34c29
 Graphics_en_US_35.png=6ffc4cdec09ab46a1e5d4ae9fc119fc9
 Graphics_en_US_36.png=415eb9aa50045f403f03bf90418a60da
-Graphics_en_US_37.png=76950c3a78d543018ca046b7e5709d88
 Graphics_en_US_38.png=949d08ca0d73f015692fe34327e6f479
 Graphics_en_US_39.png=472c77f8a7f56a9ecded78b1cb041139
 Graphics_en_US_40.png=472c77f8a7f56a9ecded78b1cb041139
@@ -97,7 +97,6 @@ Graphics_fr_FR_33.png=caffc3a1e808e6c77f4b3507ccf2244d
 Graphics_fr_FR_34.png=2297699ec06e47b2fe0a18a86fd34c29
 Graphics_fr_FR_35.png=6ffc4cdec09ab46a1e5d4ae9fc119fc9
 Graphics_fr_FR_36.png=415eb9aa50045f403f03bf90418a60da
-Graphics_fr_FR_37.png=76950c3a78d543018ca046b7e5709d88
 Graphics_fr_FR_38.png=949d08ca0d73f015692fe34327e6f479
 Graphics_fr_FR_39.png=472c77f8a7f56a9ecded78b1cb041139
 Graphics_fr_FR_40.png=472c77f8a7f56a9ecded78b1cb041139
@@ -106,7 +105,6 @@ Graphics_ja_JP_33.png=caffc3a1e808e6c77f4b3507ccf2244d
 Graphics_ja_JP_34.png=2297699ec06e47b2fe0a18a86fd34c29
 Graphics_ja_JP_35.png=6ffc4cdec09ab46a1e5d4ae9fc119fc9
 Graphics_ja_JP_36.png=415eb9aa50045f403f03bf90418a60da
-Graphics_ja_JP_37.png=76950c3a78d543018ca046b7e5709d88
 Graphics_ja_JP_38.png=949d08ca0d73f015692fe34327e6f479
 Graphics_ja_JP_39.png=472c77f8a7f56a9ecded78b1cb041139
 Graphics_ja_JP_40.png=472c77f8a7f56a9ecded78b1cb041139
@@ -115,7 +113,6 @@ Graphics_ru_RU_33.png=caffc3a1e808e6c77f4b3507ccf2244d
 Graphics_ru_RU_34.png=2297699ec06e47b2fe0a18a86fd34c29
 Graphics_ru_RU_35.png=6ffc4cdec09ab46a1e5d4ae9fc119fc9
 Graphics_ru_RU_36.png=415eb9aa50045f403f03bf90418a60da
-Graphics_ru_RU_37.png=76950c3a78d543018ca046b7e5709d88
 Graphics_ru_RU_38.png=949d08ca0d73f015692fe34327e6f479
 Graphics_ru_RU_39.png=472c77f8a7f56a9ecded78b1cb041139
 Graphics_ru_RU_40.png=472c77f8a7f56a9ecded78b1cb041139
@@ -832,11 +829,11 @@ erfinv_1.png=a9c079e2216ea843f529d8fa1af6a38d
 errbar_1.png=f0db95118951d4c04c3bde7c93e2fa2e
 eval3dp_1.png=2e80dc6ec334a5caf5b2c918e68bad3
 eval_cshep2d_1.png=5af907b540319286ce844b966cf742e6
-evans_en_US_1.png=41e97afd94ab96301b1c5d1661b56f63
-evans_fr_FR_1.png=41e97afd94ab96301b1c5d1661b56f63
-evans_ja_JP_1.png=41e97afd94ab96301b1c5d1661b56f63
-evans_pt_BR_1.png=41e97afd94ab96301b1c5d1661b56f63
-evans_ru_RU_1.png=41e97afd94ab96301b1c5d1661b56f63
+evans_en_US_1.png=91ce84e7714915348624b03889256895
+evans_fr_FR_1.png=91ce84e7714915348624b03889256895
+evans_ja_JP_1.png=91ce84e7714915348624b03889256895
+evans_pt_BR_1.png=91ce84e7714915348624b03889256895
+evans_ru_RU_1.png=91ce84e7714915348624b03889256895
 fchamp_1.png=ee67b6aca421a82b83da821e4d7121de
 fchamp_2.png=2a078aea05fbcd35df81170239376b2a
 fec_1.png=e0a7716ead7fd2e608cc0945d0c4331c
@@ -1166,11 +1163,12 @@ scatter_9.png=9f987520c26d42c41f2ee6d3ec930529
 scifunc_block_m_1.png=a26368cd2a69c472967105b9d8deb5ed
 sec_1.png=4eff2516ae7932bb126b6e2fa133f046
 sech_1.png=62b827923764aaaf8ce355b0256bef3b
-sgrid_1.png=76950c3a78d543018ca046b7e5709d88
-sgrid_en_US_2.png=ad8cda5dda0c0c324b31c292add26315
-sgrid_fr_FR_2.png=ad8cda5dda0c0c324b31c292add26315
-sgrid_ja_JP_2.png=ad8cda5dda0c0c324b31c292add26315
-sgrid_ru_RU_2.png=ad8cda5dda0c0c324b31c292add26315
+sgrid_1.png=a5e9d0fb3e290982e4c01a50b800b8ff
+sgrid_2.png=260f87be847f70d84df4d1013bd9113b
+sgrid_3.png=b26fd988424a754a724bd483a4f26e0f
+sgrid_en_US_3.png=d10d1338bed22d7ec12b933e84d84dff
+sgrid_fr_FR_3.png=d10d1338bed22d7ec12b933e84d84dff
+sgrid_ru_RU_3.png=d10d1338bed22d7ec12b933e84d84dff
 show_margins_en_US_1.png=698c2e49c740d473e95a6fc890c00860
 show_margins_en_US_2.png=a3a47700e4703a9f57f5b183be970fb
 show_margins_fr_FR_1.png=698c2e49c740d473e95a6fc890c00860
diff --git a/scilab/modules/helptools/images/Graphics_37.png b/scilab/modules/helptools/images/Graphics_37.png
new file mode 100644 (file)
index 0000000..83741df
Binary files /dev/null and b/scilab/modules/helptools/images/Graphics_37.png differ
index e086353..fe7691a 100644 (file)
Binary files a/scilab/modules/helptools/images/Graphics_en_US_36.png and b/scilab/modules/helptools/images/Graphics_en_US_36.png differ
diff --git a/scilab/modules/helptools/images/Graphics_en_US_37.png b/scilab/modules/helptools/images/Graphics_en_US_37.png
deleted file mode 100644 (file)
index a1aea33..0000000
Binary files a/scilab/modules/helptools/images/Graphics_en_US_37.png and /dev/null differ
index e086353..fe7691a 100644 (file)
Binary files a/scilab/modules/helptools/images/Graphics_fr_FR_36.png and b/scilab/modules/helptools/images/Graphics_fr_FR_36.png differ
diff --git a/scilab/modules/helptools/images/Graphics_fr_FR_37.png b/scilab/modules/helptools/images/Graphics_fr_FR_37.png
deleted file mode 100644 (file)
index a1aea33..0000000
Binary files a/scilab/modules/helptools/images/Graphics_fr_FR_37.png and /dev/null differ
index e086353..fe7691a 100644 (file)
Binary files a/scilab/modules/helptools/images/Graphics_ja_JP_36.png and b/scilab/modules/helptools/images/Graphics_ja_JP_36.png differ
diff --git a/scilab/modules/helptools/images/Graphics_ja_JP_37.png b/scilab/modules/helptools/images/Graphics_ja_JP_37.png
deleted file mode 100644 (file)
index a1aea33..0000000
Binary files a/scilab/modules/helptools/images/Graphics_ja_JP_37.png and /dev/null differ
index e086353..fe7691a 100644 (file)
Binary files a/scilab/modules/helptools/images/Graphics_ru_RU_36.png and b/scilab/modules/helptools/images/Graphics_ru_RU_36.png differ
diff --git a/scilab/modules/helptools/images/Graphics_ru_RU_37.png b/scilab/modules/helptools/images/Graphics_ru_RU_37.png
deleted file mode 100644 (file)
index a1aea33..0000000
Binary files a/scilab/modules/helptools/images/Graphics_ru_RU_37.png and /dev/null differ
index a39b117..97c5a06 100644 (file)
Binary files a/scilab/modules/helptools/images/evans_en_US_1.png and b/scilab/modules/helptools/images/evans_en_US_1.png differ
index a39b117..97c5a06 100644 (file)
Binary files a/scilab/modules/helptools/images/evans_fr_FR_1.png and b/scilab/modules/helptools/images/evans_fr_FR_1.png differ
index a39b117..97c5a06 100644 (file)
Binary files a/scilab/modules/helptools/images/evans_ja_JP_1.png and b/scilab/modules/helptools/images/evans_ja_JP_1.png differ
index a39b117..97c5a06 100644 (file)
Binary files a/scilab/modules/helptools/images/evans_pt_BR_1.png and b/scilab/modules/helptools/images/evans_pt_BR_1.png differ
index a39b117..97c5a06 100644 (file)
Binary files a/scilab/modules/helptools/images/evans_ru_RU_1.png and b/scilab/modules/helptools/images/evans_ru_RU_1.png differ
index 83737d0..e7c120a 100644 (file)
Binary files a/scilab/modules/helptools/images/kpure_1.png and b/scilab/modules/helptools/images/kpure_1.png differ
index a1d9cb8..f668399 100644 (file)
Binary files a/scilab/modules/helptools/images/kpure_2.png and b/scilab/modules/helptools/images/kpure_2.png differ
index a1aea33..418ca1b 100644 (file)
Binary files a/scilab/modules/helptools/images/sgrid_1.png and b/scilab/modules/helptools/images/sgrid_1.png differ
diff --git a/scilab/modules/helptools/images/sgrid_2.png b/scilab/modules/helptools/images/sgrid_2.png
new file mode 100644 (file)
index 0000000..543da79
Binary files /dev/null and b/scilab/modules/helptools/images/sgrid_2.png differ
diff --git a/scilab/modules/helptools/images/sgrid_3.png b/scilab/modules/helptools/images/sgrid_3.png
new file mode 100644 (file)
index 0000000..e280cb3
Binary files /dev/null and b/scilab/modules/helptools/images/sgrid_3.png differ
diff --git a/scilab/modules/helptools/images/sgrid_en_US_2.png b/scilab/modules/helptools/images/sgrid_en_US_2.png
deleted file mode 100644 (file)
index 462e44a..0000000
Binary files a/scilab/modules/helptools/images/sgrid_en_US_2.png and /dev/null differ
diff --git a/scilab/modules/helptools/images/sgrid_en_US_3.png b/scilab/modules/helptools/images/sgrid_en_US_3.png
new file mode 100644 (file)
index 0000000..7600e2a
Binary files /dev/null and b/scilab/modules/helptools/images/sgrid_en_US_3.png differ
diff --git a/scilab/modules/helptools/images/sgrid_fr_FR_2.png b/scilab/modules/helptools/images/sgrid_fr_FR_2.png
deleted file mode 100644 (file)
index 462e44a..0000000
Binary files a/scilab/modules/helptools/images/sgrid_fr_FR_2.png and /dev/null differ
diff --git a/scilab/modules/helptools/images/sgrid_fr_FR_3.png b/scilab/modules/helptools/images/sgrid_fr_FR_3.png
new file mode 100644 (file)
index 0000000..8fc64ad
Binary files /dev/null and b/scilab/modules/helptools/images/sgrid_fr_FR_3.png differ
diff --git a/scilab/modules/helptools/images/sgrid_ja_JP_2.png b/scilab/modules/helptools/images/sgrid_ja_JP_2.png
deleted file mode 100644 (file)
index 462e44a..0000000
Binary files a/scilab/modules/helptools/images/sgrid_ja_JP_2.png and /dev/null differ
diff --git a/scilab/modules/helptools/images/sgrid_ru_RU_2.png b/scilab/modules/helptools/images/sgrid_ru_RU_2.png
deleted file mode 100644 (file)
index 462e44a..0000000
Binary files a/scilab/modules/helptools/images/sgrid_ru_RU_2.png and /dev/null differ
diff --git a/scilab/modules/helptools/images/sgrid_ru_RU_3.png b/scilab/modules/helptools/images/sgrid_ru_RU_3.png
new file mode 100644 (file)
index 0000000..d8dac12
Binary files /dev/null and b/scilab/modules/helptools/images/sgrid_ru_RU_3.png differ