]> granicus.if.org Git - graphviz/commitdiff
Update documentation concerning new shape values
authorEmden Gansner <erg@research.att.com>
Thu, 16 Aug 2012 21:15:47 +0000 (17:15 -0400)
committerEmden Gansner <erg@research.att.com>
Thu, 16 Aug 2012 21:15:47 +0000 (17:15 -0400)
26 files changed:
doc/info/attrs.html
doc/info/s_c_bold.png [new file with mode: 0644]
doc/info/s_c_dashed.png [new file with mode: 0644]
doc/info/s_c_dotted.png [new file with mode: 0644]
doc/info/s_c_filled.png [new file with mode: 0644]
doc/info/s_c_rounded.png [new file with mode: 0644]
doc/info/s_c_solid.png [new file with mode: 0644]
doc/info/s_c_striped.png [new file with mode: 0644]
doc/info/s_e_bold.png [new file with mode: 0644]
doc/info/s_e_dashed.png [new file with mode: 0644]
doc/info/s_e_dotted.png [new file with mode: 0644]
doc/info/s_e_solid.png [new file with mode: 0644]
doc/info/s_e_tapered.png [new file with mode: 0644]
doc/info/s_n_bold.png [new file with mode: 0644]
doc/info/s_n_dashed.png [new file with mode: 0644]
doc/info/s_n_diagonals.png [new file with mode: 0644]
doc/info/s_n_dotted.png [new file with mode: 0644]
doc/info/s_n_filled.png [new file with mode: 0644]
doc/info/s_n_rounded.png [new file with mode: 0644]
doc/info/s_n_solid.png [new file with mode: 0644]
doc/info/s_n_striped.png [new file with mode: 0644]
doc/info/s_n_wedged.png [new file with mode: 0644]
doc/infosrc/Makefile.old
doc/infosrc/attrs
doc/infosrc/mkstyles.sh [new file with mode: 0755]
doc/infosrc/types

index a6a81a2d0e37156d1515769029314ce473091ebf..082f65835ecfe63474089a2a6d74a343e402fab2 100644 (file)
@@ -1216,10 +1216,10 @@ This field indicates which graph component uses the attribute.
 <DT><A NAME=d:mode HREF=#a:mode><STRONG>mode</STRONG></A>
 <DD>  Technique for optimizing the layout. For neato, if <B>mode</B> is <TT>"major"</TT>,
   neato uses stress majorization. If <B>mode</B> is <TT>"KK"</TT>,
-  neato uses a version of the gradient descent method. The only advantage
+  neato uses a version of the gradient descent method. The only advantages
   to the latter technique is that it is sometimes appreciably faster for
-  small (number of nodes < 100) graphs. A significant disadvantage is that
-  it may cycle.
+  small (number of nodes < 100) graphs, and it works much better with pinned nodes.
+  A disadvantage is that it may cycle.
   <P>
   There are two experimental modes in neato, "hier", which adds a top-down
   directionality similar to the layout used in dot, and "ipsep", which
@@ -2044,6 +2044,19 @@ enclosed in the parentheses,  <TT>(...)+</TT> indicates 1 or more, and
       <TR><TD align=center>360<TD><IMG SRC="g_lin360.png"><TD><IMG SRC="g_rad360.png"></TR>
     </TABLE>
 
+<DT><A NAME=k:colorValList><STRONG>colorValList</STRONG></A>
+<DD>A colon-separated list of color-value pairs: <I>CV</I>(:<I>CV</I>)*
+   where each <I>CV</I> has the form <A HREF=#k:color>color</A>(;v)* and v is an optional non-negative double.
+  The sum of all the v's must be less than or equal to 1. Semantically, such as list is used to specify the
+  proportion of each color used. 
+  <P>
+  If the sum of the doubles is strictly less than 1, then the remainder is distributed equally among each
+  color without an explicit value or, if there are none, added to the last color.
+  As an example, the list<BR>
+  <TT>blue:#ff0000;.3:0.482 0.714 0.878:brown;.2</TT>
+  is equivalent to<BR>
+  <TT>blue;2.5:#ff0000;.3:0.482 0.714 0.878;2.5:brown;.2</TT>
+
 <DT><A NAME=k:dirType><STRONG>dirType</STRONG></A>
 <DD>For an edge <CODE>T -> H;</CODE>
     <TABLE>
@@ -2314,6 +2327,33 @@ enclosed in the parentheses,  <TT>(...)+</TT> indicates 1 or more, and
   The styles "filled" and "rounded" are recognized for clusters.
   The style "radial" is recognized for nodes, clusters and graphs, and indicates a
   radial-style gradient fill if applicable.
+  <P>
+  For non-rounded clusters and rectangular nodes, the style "striped" is also supported,
+  as is the  the style "wedged" for elliptical and circular nodes. In these cases, the relevant
+  fill color attribute (<A HREF=#d:fillcolor>fillcolor</A>, <A HREF=#d:bgcolor>bgcolor</A> or <A HREF=#d:color>color</A>)
+  may have the type <A HREF=#k:colorValList>colorValList</A>. 
+  For the "striped" style, the object's rectangle is filled with
+  multiple vertical stripes, the colors and proportions being determined the colorValList.
+  For the "wedged" style, the node's elliptical shape is filled with
+  multiple wedges, producing a "pie chart" effect.
+  <P>
+  Examples:<BR>
+    <TABLE border=1>
+      <TR><TH>Style<TH>Node<TH>Edge<TH>Cluster</TR>
+      <TR><TD align=center >dashed<TD><IMG SRC="s_n_dashed.png"><TD><IMG SRC="s_e_dashed.png"><TD><IMG SRC="s_c_dashed.png"></TR>
+      <TR><TD align=center >dotted<TD><IMG SRC="s_n_dotted.png"><TD><IMG SRC="s_e_dotted.png"><TD><IMG SRC="s_c_dotted.png"></TR>
+      <TR><TD align=center >solid<TD><IMG SRC="s_n_solid.png"><TD><IMG SRC="s_e_solid.png"><TD><IMG SRC="s_c_solid.png"></TR>
+      <TR><TD align=center >bold<TD><IMG SRC="s_n_bold.png"><TD><IMG SRC="s_e_bold.png"><TD><IMG SRC="s_c_bold.png"></TR>
+      <TR><TD align=center >tapered<TD> <TD><IMG SRC="s_e_tapered.png"><TD> </TR>
+      <TR><TD align=center >diagonals<TD><IMG SRC="s_n_diagonals.png"><TD> <TD> </TR>
+      <TR><TD align=center >rounded<TD><IMG SRC="s_n_rounded.png"><TD><TD><IMG SRC="s_c_rounded.png"></TR>
+      <TR><TD align=center >filled<TD><IMG SRC="s_n_filled.png"><TD><TD><IMG SRC="s_c_filled.png"></TR>
+      <TR><TD align=center >striped<TD><IMG SRC="s_n_striped.png"><TD><TD><IMG SRC="s_c_striped.png"></TR>
+      <TR><TD align=center >wedged<TD><IMG SRC="s_n_wedged.png"><TD><TD></TR>
+    </TABLE>
+  The style "invis" indicates that the object is not drawn.
+  Examples of the gradient and radial styles are shown in the <A HREF=#k:colorList>colorList</A> entry above.
+  <P>
   Additional styles are available in
   device-dependent form. Style lists are passed to device drivers, which
   can use this to generate appropriate output.
diff --git a/doc/info/s_c_bold.png b/doc/info/s_c_bold.png
new file mode 100644 (file)
index 0000000..4124934
Binary files /dev/null and b/doc/info/s_c_bold.png differ
diff --git a/doc/info/s_c_dashed.png b/doc/info/s_c_dashed.png
new file mode 100644 (file)
index 0000000..e561c25
Binary files /dev/null and b/doc/info/s_c_dashed.png differ
diff --git a/doc/info/s_c_dotted.png b/doc/info/s_c_dotted.png
new file mode 100644 (file)
index 0000000..0616290
Binary files /dev/null and b/doc/info/s_c_dotted.png differ
diff --git a/doc/info/s_c_filled.png b/doc/info/s_c_filled.png
new file mode 100644 (file)
index 0000000..a6fd99e
Binary files /dev/null and b/doc/info/s_c_filled.png differ
diff --git a/doc/info/s_c_rounded.png b/doc/info/s_c_rounded.png
new file mode 100644 (file)
index 0000000..e2bde0a
Binary files /dev/null and b/doc/info/s_c_rounded.png differ
diff --git a/doc/info/s_c_solid.png b/doc/info/s_c_solid.png
new file mode 100644 (file)
index 0000000..87c7cdc
Binary files /dev/null and b/doc/info/s_c_solid.png differ
diff --git a/doc/info/s_c_striped.png b/doc/info/s_c_striped.png
new file mode 100644 (file)
index 0000000..bd43ff5
Binary files /dev/null and b/doc/info/s_c_striped.png differ
diff --git a/doc/info/s_e_bold.png b/doc/info/s_e_bold.png
new file mode 100644 (file)
index 0000000..f0dbf28
Binary files /dev/null and b/doc/info/s_e_bold.png differ
diff --git a/doc/info/s_e_dashed.png b/doc/info/s_e_dashed.png
new file mode 100644 (file)
index 0000000..d009e9d
Binary files /dev/null and b/doc/info/s_e_dashed.png differ
diff --git a/doc/info/s_e_dotted.png b/doc/info/s_e_dotted.png
new file mode 100644 (file)
index 0000000..3996c78
Binary files /dev/null and b/doc/info/s_e_dotted.png differ
diff --git a/doc/info/s_e_solid.png b/doc/info/s_e_solid.png
new file mode 100644 (file)
index 0000000..d665267
Binary files /dev/null and b/doc/info/s_e_solid.png differ
diff --git a/doc/info/s_e_tapered.png b/doc/info/s_e_tapered.png
new file mode 100644 (file)
index 0000000..9bc644b
Binary files /dev/null and b/doc/info/s_e_tapered.png differ
diff --git a/doc/info/s_n_bold.png b/doc/info/s_n_bold.png
new file mode 100644 (file)
index 0000000..e348de3
Binary files /dev/null and b/doc/info/s_n_bold.png differ
diff --git a/doc/info/s_n_dashed.png b/doc/info/s_n_dashed.png
new file mode 100644 (file)
index 0000000..f237858
Binary files /dev/null and b/doc/info/s_n_dashed.png differ
diff --git a/doc/info/s_n_diagonals.png b/doc/info/s_n_diagonals.png
new file mode 100644 (file)
index 0000000..0938054
Binary files /dev/null and b/doc/info/s_n_diagonals.png differ
diff --git a/doc/info/s_n_dotted.png b/doc/info/s_n_dotted.png
new file mode 100644 (file)
index 0000000..89e7eef
Binary files /dev/null and b/doc/info/s_n_dotted.png differ
diff --git a/doc/info/s_n_filled.png b/doc/info/s_n_filled.png
new file mode 100644 (file)
index 0000000..50b2ea9
Binary files /dev/null and b/doc/info/s_n_filled.png differ
diff --git a/doc/info/s_n_rounded.png b/doc/info/s_n_rounded.png
new file mode 100644 (file)
index 0000000..e29e1e6
Binary files /dev/null and b/doc/info/s_n_rounded.png differ
diff --git a/doc/info/s_n_solid.png b/doc/info/s_n_solid.png
new file mode 100644 (file)
index 0000000..e8332ff
Binary files /dev/null and b/doc/info/s_n_solid.png differ
diff --git a/doc/info/s_n_striped.png b/doc/info/s_n_striped.png
new file mode 100644 (file)
index 0000000..bdfe480
Binary files /dev/null and b/doc/info/s_n_striped.png differ
diff --git a/doc/info/s_n_wedged.png b/doc/info/s_n_wedged.png
new file mode 100644 (file)
index 0000000..10c7550
Binary files /dev/null and b/doc/info/s_n_wedged.png differ
index 2ccc433a900a02fd67c576ebbc864f9c626d1309..9a9e69410ad454864e9918ef25cf212c1b1be3a0 100644 (file)
@@ -32,7 +32,12 @@ MJPG = sdlshapes.jpg
 GRADPNG = g_lin0.png g_rad0.png g_lin45.png g_rad45.png g_lin90.png g_rad90.png \
           g_lin180.png g_rad180.png g_lin270.png g_rad270.png g_lin360.png g_rad360.png
 
-MPNG = plugins.png sdlshapes.png $(GRADPNG)
+STYLEPNG = s_n_dashed.png s_e_dashed.png s_c_dashed.png s_n_dotted.png s_e_dotted.png s_c_dotted.png \
+           s_n_solid.png s_e_solid.png s_c_solid.png s_n_bold.png s_e_bold.png s_c_bold.png \
+           s_e_tapered.png s_n_diagonals.png s_n_rounded.png s_c_rounded.png s_n_filled.png \
+           s_c_filled.png s_n_striped.png s_c_striped.png s_n_wedged.png
+
+MPNG = plugins.png sdlshapes.png $(GRADPNG) $(STYLEPNG)
 
 SGIF = Mcircle.gif Mdiamond.gif Msquare.gif box.gif \
       circle.gif diamond.gif doublecircle.gif \
@@ -174,6 +179,9 @@ $(A2GIF) :
 $(GRADPNG) :
        ./mkgrads.sh $@
 
+$(STYLEPNG) :
+       ./mkstyles.sh $@
+
 clean :
        rm -f mklang sdlshapes.ps sdlshapes.ppm html.html
 
index 8eca88ebf3cdedaf6aab1295d32bec56b60e8a73..7a518c32ac53e2ff34000b5df066ed9ce841de5c 100644 (file)
@@ -671,10 +671,10 @@ Minimum edge length (rank difference between head and tail).
 :mode:G:string:major;  neato
 Technique for optimizing the layout. For neato, if <B>mode</B> is <TT>"major"</TT>,
 neato uses stress majorization. If <B>mode</B> is <TT>"KK"</TT>,
-neato uses a version of the gradient descent method. The only advantage
+neato uses a version of the gradient descent method. The only advantages
 to the latter technique is that it is sometimes appreciably faster for
-small (number of nodes < 100) graphs. A significant disadvantage is that
-it may cycle.
+small (number of nodes < 100) graphs, and it works much better with pinned nodes.
+A disadvantage is that it may cycle.
 <P>
 There are two experimental modes in neato, "hier", which adds a top-down
 directionality similar to the layout used in dot, and "ipsep", which
diff --git a/doc/infosrc/mkstyles.sh b/doc/infosrc/mkstyles.sh
new file mode 100755 (executable)
index 0000000..857c293
--- /dev/null
@@ -0,0 +1,67 @@
+#! /bin/ksh
+#
+# usage: mkstyles.sh <styles>
+#
+# where gradient has the form s_<o>_<style>.fmt
+# where .fmt gives the desired output format.
+
+if (( $# == 0 ))
+then
+  echo "mkstyles: missing style name argument"
+  exit 1
+fi
+
+TGT=$1               # s_o_style.fmt
+BASE=${1%.*}         # s_o_style
+FMT=${1#$BASE.}      # fmt
+F=$BASE.gv           # s_o_style.gv
+OBJ=${BASE%_*}       # s_e,s_n or s_c
+STYLE=${BASE#${OBJ}_}  # style
+
+case "$STYLE" in
+ filled* )
+  COLOR="fillcolor=lightblue"
+  ;;
+ striped* )
+  COLOR="fillcolor=\"blue:red;.3:yellow:green;.2\""
+  SHAPE="shape=box"
+  ;;
+ rounded*  | diagon* )
+  SHAPE="shape=box"
+  ;;
+ wedged* )
+  COLOR="fillcolor=\"blue:red;.3:yellow:green;.2\""
+  ;;
+esac
+
+exec 3> $F
+
+echo "graph G {" >&3
+
+case "$OBJ" in
+ s_n* )
+    echo "  A[$SHAPE style=$STYLE $COLOR label=\"\"]" >&3
+  ;;
+ s_e* )
+    echo "  rankdir=LR" >&3
+    echo "  node[shape=point]" >&3
+    echo "  edge[dir=forward arrowhead=none style=$STYLE]" >&3
+    echo "  a -- b " >&3
+  ;;
+ s_c* )
+    echo "  node[style=filled label=\"\"]" >&3
+    echo "  subgraph cluster0 {" >&3
+    echo "    $COLOR" >&3
+    echo "    style=$STYLE" >&3
+    echo "    H " >&3
+    echo "  }" >&3
+  ;;
+esac
+echo "}" >&3
+
+exec 3>&-
+
+    dot -T$FMT $F > $TGT
+    rm -f $F
+
+
index fae1f25dd649906a54fb699ac7d35407daade656..85b18f1f96c8366f9727218f725681e484cc9a85 100644 (file)
@@ -113,6 +113,18 @@ The following table shows some variations of the <TT>yellow:blue</TT> color list
     <TR><TD align=center>270<TD><IMG SRC="g_lin270.png"><TD><IMG SRC="g_rad270.png"></TR>
     <TR><TD align=center>360<TD><IMG SRC="g_lin360.png"><TD><IMG SRC="g_rad360.png"></TR>
   </TABLE>
+:colorValList
+A colon-separated list of color-value pairs: <I>CV</I>(:<I>CV</I>)*
+ where each <I>CV</I> has the form <A HREF=#k:color>color</A>(;v)* and v is an optional non-negative double.
+The sum of all the v's must be less than or equal to 1. Semantically, such as list is used to specify the
+proportion of each color used. 
+<P>
+If the sum of the doubles is strictly less than 1, then the remainder is distributed equally among each
+color without an explicit value or, if there are none, added to the last color.
+As an example, the list<BR>
+<TT>blue:#ff0000;.3:0.482 0.714 0.878:brown;.2</TT>
+is equivalent to<BR>
+<TT>blue;2.5:#ff0000;.3:0.482 0.714 0.878;2.5:brown;.2</TT>
 :dirType
 For an edge <CODE>T -> H;</CODE>
   <TABLE>
@@ -331,6 +343,33 @@ and "filled", "diagonals" and "rounded" for nodes only.
 The styles "filled" and "rounded" are recognized for clusters.
 The style "radial" is recognized for nodes, clusters and graphs, and indicates a
 radial-style gradient fill if applicable.
+<P>
+For non-rounded clusters and rectangular nodes, the style "striped" is also supported,
+as is the  the style "wedged" for elliptical and circular nodes. In these cases, the relevant
+fill color attribute (<A HREF=#d:fillcolor>fillcolor</A>, <A HREF=#d:bgcolor>bgcolor</A> or <A HREF=#d:color>color</A>)
+may have the type <A HREF=#k:colorValList>colorValList</A>. 
+For the "striped" style, the object's rectangle is filled with
+multiple vertical stripes, the colors and proportions being determined the colorValList.
+For the "wedged" style, the node's elliptical shape is filled with
+multiple wedges, producing a "pie chart" effect.
+<P>
+Examples:<BR>
+  <TABLE border=1>
+    <TR><TH>Style<TH>Node<TH>Edge<TH>Cluster</TR>
+    <TR><TD align=center >dashed<TD><IMG SRC="s_n_dashed.png"><TD><IMG SRC="s_e_dashed.png"><TD><IMG SRC="s_c_dashed.png"></TR>
+    <TR><TD align=center >dotted<TD><IMG SRC="s_n_dotted.png"><TD><IMG SRC="s_e_dotted.png"><TD><IMG SRC="s_c_dotted.png"></TR>
+    <TR><TD align=center >solid<TD><IMG SRC="s_n_solid.png"><TD><IMG SRC="s_e_solid.png"><TD><IMG SRC="s_c_solid.png"></TR>
+    <TR><TD align=center >bold<TD><IMG SRC="s_n_bold.png"><TD><IMG SRC="s_e_bold.png"><TD><IMG SRC="s_c_bold.png"></TR>
+    <TR><TD align=center >tapered<TD> <TD><IMG SRC="s_e_tapered.png"><TD> </TR>
+    <TR><TD align=center >diagonals<TD><IMG SRC="s_n_diagonals.png"><TD> <TD> </TR>
+    <TR><TD align=center >rounded<TD><IMG SRC="s_n_rounded.png"><TD><TD><IMG SRC="s_c_rounded.png"></TR>
+    <TR><TD align=center >filled<TD><IMG SRC="s_n_filled.png"><TD><TD><IMG SRC="s_c_filled.png"></TR>
+    <TR><TD align=center >striped<TD><IMG SRC="s_n_striped.png"><TD><TD><IMG SRC="s_c_striped.png"></TR>
+    <TR><TD align=center >wedged<TD><IMG SRC="s_n_wedged.png"><TD><TD></TR>
+  </TABLE>
+The style "invis" indicates that the object is not drawn.
+Examples of the gradient and radial styles are shown in the <A HREF=#k:colorList>colorList</A> entry above.
+<P>
 Additional styles are available in
 device-dependent form. Style lists are passed to device drivers, which
 can use this to generate appropriate output.