doc/images/node_disjoint.eps
author deba
Tue, 17 Oct 2006 10:50:57 +0000
changeset 2247 269a0dcee70b
permissions -rw-r--r--
Update the Path concept
Concept check for paths

DirPath renamed to Path
The interface updated to the new lemon interface
Make difference between the empty path and the path from one node
Builder interface have not been changed
// I wanted but there was not accordance about it

UPath is removed
It was a buggy implementation, it could not iterate on the
nodes in the right order
Right way to use undirected paths => path of edges in undirected graphs

The tests have been modified to the current implementation
deba@2079
     1
%!PS-Adobe-2.0 EPSF-2.0
deba@2079
     2
%%Title: node disjoint path
deba@2079
     3
%%Copyright: (C) 2006 LEMON Project
deba@2079
     4
%%Creator: LEMON, graphToEps()
deba@2079
     5
%%CreationDate: Fri May 12 01:53:21 2006
deba@2079
     6
%%BoundingBox: -290 -170 520 230
deba@2079
     7
%%EndComments
deba@2079
     8
/lb { setlinewidth setrgbcolor newpath moveto
deba@2079
     9
      4 2 roll 1 index 1 index curveto stroke } bind def
deba@2079
    10
/l { setlinewidth setrgbcolor newpath moveto lineto stroke } bind def
deba@2079
    11
/c { newpath dup 3 index add 2 index moveto 0 360 arc closepath } bind def
deba@2079
    12
/sq { newpath 2 index 1 index add 2 index 2 index add moveto
deba@2079
    13
      2 index 1 index sub 2 index 2 index add lineto
deba@2079
    14
      2 index 1 index sub 2 index 2 index sub lineto
deba@2079
    15
      2 index 1 index add 2 index 2 index sub lineto
deba@2079
    16
      closepath pop pop pop} bind def
deba@2079
    17
/di { newpath 2 index 1 index add 2 index moveto
deba@2079
    18
      2 index             2 index 2 index add lineto
deba@2079
    19
      2 index 1 index sub 2 index             lineto
deba@2079
    20
      2 index             2 index 2 index sub lineto
deba@2079
    21
      closepath pop pop pop} bind def
deba@2079
    22
/nc { 0 0 0 setrgbcolor 5 index 5 index 5 index c fill
deba@2079
    23
     setrgbcolor 1.1 div c fill
deba@2079
    24
   } bind def
deba@2079
    25
/nsq { 0 0 0 setrgbcolor 5 index 5 index 5 index sq fill
deba@2079
    26
     setrgbcolor 1.1 div sq fill
deba@2079
    27
   } bind def
deba@2079
    28
/ndi { 0 0 0 setrgbcolor 5 index 5 index 5 index di fill
deba@2079
    29
     setrgbcolor 1.1 div di fill
deba@2079
    30
   } bind def
deba@2079
    31
/nfemale { 0 0 0 setrgbcolor 3 index 0.0909091 1.5 mul mul setlinewidth
deba@2079
    32
  newpath 5 index 5 index moveto 5 index 5 index 5 index 3.01 mul sub
deba@2079
    33
  lineto 5 index 4 index .7 mul sub 5 index 5 index 2.2 mul sub moveto
deba@2079
    34
  5 index 4 index .7 mul add 5 index 5 index 2.2 mul sub lineto stroke
deba@2079
    35
  5 index 5 index 5 index c fill
deba@2079
    36
  setrgbcolor 1.1 div c fill
deba@2079
    37
  } bind def
deba@2079
    38
/nmale {
deba@2079
    39
  0 0 0 setrgbcolor 3 index 0.0909091 1.5 mul mul setlinewidth
deba@2079
    40
  newpath 5 index 5 index moveto
deba@2079
    41
  5 index 4 index 1 mul 1.5 mul add
deba@2079
    42
  5 index 5 index 3 sqrt 1.5 mul mul add
deba@2079
    43
  1 index 1 index lineto
deba@2079
    44
  1 index 1 index 7 index sub moveto
deba@2079
    45
  1 index 1 index lineto
deba@2079
    46
  exch 5 index 3 sqrt .5 mul mul sub exch 5 index .5 mul sub lineto
deba@2079
    47
  stroke
deba@2079
    48
  5 index 5 index 5 index c fill
deba@2079
    49
  setrgbcolor 1.1 div c fill
deba@2079
    50
  } bind def
deba@2079
    51
/arrl 1 def
deba@2079
    52
/arrw 0.3 def
deba@2079
    53
/lrl { 2 index mul exch 2 index mul exch rlineto pop} bind def
deba@2079
    54
/arr { setrgbcolor /y1 exch def /x1 exch def /dy exch def /dx exch def
deba@2079
    55
       /w exch def /len exch def
deba@2079
    56
       newpath x1 dy w 2 div mul add y1 dx w 2 div mul sub moveto
deba@2079
    57
       len w sub arrl sub dx dy lrl
deba@2079
    58
       arrw dy dx neg lrl
deba@2079
    59
       dx arrl w add mul dy w 2 div arrw add mul sub
deba@2079
    60
       dy arrl w add mul dx w 2 div arrw add mul add rlineto
deba@2079
    61
       dx arrl w add mul neg dy w 2 div arrw add mul sub
deba@2079
    62
       dy arrl w add mul neg dx w 2 div arrw add mul add rlineto
deba@2079
    63
       arrw dy dx neg lrl
deba@2079
    64
       len w sub arrl sub neg dx dy lrl
deba@2079
    65
       closepath fill } bind def
deba@2079
    66
/cshow { 2 index 2 index moveto dup stringwidth pop
deba@2079
    67
         neg 2 div fosi .35 mul neg rmoveto show pop pop} def
deba@2079
    68
deba@2079
    69
gsave
deba@2079
    70
10 dup scale
deba@2079
    71
%Edges:
deba@2079
    72
gsave
deba@2079
    73
4 0.3 1 0 -27 5 0 0 0 arr
deba@2079
    74
4 0.3 1 0 -13 -4 1 0 0 arr
deba@2079
    75
4 0.3 1 0 -9 15 1 0 0 arr
deba@2079
    76
4 0.3 1 0 3 -9 1 0 0 arr
deba@2079
    77
4 0.3 1 0 3 3 1 0 0 arr
deba@2079
    78
4 0.3 1 0 1 21 1 0 0 arr
deba@2079
    79
4 0.3 1 0 25 -5 1 0 0 arr
deba@2079
    80
4 0.3 1 0 28 13 1 0 0 arr
deba@2079
    81
4 0.3 1 0 45 3 0 0 0 arr
deba@2079
    82
4 0.3 1 0 -18 -14 1 0 0 arr
deba@2079
    83
4 0.3 1 0 25 -15 1 0 0 arr
deba@2079
    84
4 0.3 1 0 -12 7 0 0 0 arr
deba@2079
    85
4 0.3 1 0 39 -11 0 0 0 arr
deba@2079
    86
4 0.3 1 0 39 13 0 0 0 arr
deba@2079
    87
4 0.3 1 0 -20 17 1 0 0 arr
deba@2079
    88
11.7279 0.3 0.707107 -0.707107 -22 5 1 0 0 arr
deba@2079
    89
15.4012 0.3 0.792624 0.609711 -22 5 0 0 0 arr
deba@2079
    90
5.32455 0.3 0.948683 -0.316228 -15 17 1 0 0 arr
deba@2079
    91
15.7631 0.3 0.95448 0.298275 -13 -14 1 0 0 arr
deba@2079
    92
11.083 0.3 0.910366 -0.413803 -8 -4 0 0 0 arr
deba@2079
    93
12.8924 0.3 0.503871 -0.863779 -4 15 0 0 0 arr
deba@2079
    94
12.0384 0.3 0.843661 0.536875 -8 -4 1 0 0 arr
deba@2079
    95
9.77033 0.3 0.928477 -0.371391 -7 7 0 0 0 arr
deba@2079
    96
6.81025 0.3 0.640184 0.768221 -4 15 1 0 0 arr
deba@2079
    97
17.7883 0.3 0.904819 -0.425797 8 3 1 0 0 arr
deba@2079
    98
22.4094 0.3 0.939793 -0.341743 6 21 1 0 0 arr
deba@2079
    99
21.3607 0.3 0.894427 0.447214 8 3 0 0 0 arr
deba@2079
   100
22.4307 0.3 0.640184 0.768221 30 -15 1 0 0 arr
deba@2079
   101
16 0.3 0.882353 0.470588 30 -5 1 0 0 arr
deba@2079
   102
14.6205 0.3 0.768221 -0.640184 33 13 1 0 0 arr
deba@2079
   103
13.0357 0.3 0.071247 0.997459 44 -11 0 0 0 arr
deba@2079
   104
9.04987 0.3 0.0995037 -0.995037 44 13 0 0 0 arr
deba@2079
   105
18.4165 0.3 0.20601 -0.97855 -22 5 1 0 0 arr
deba@2079
   106
17.0278 0.3 0.94299 -0.33282 8 -9 1 0 0 arr
deba@2079
   107
9.19804 0.3 0.980581 0.196116 -22 5 0 0 0 arr
deba@2079
   108
8.84886 0.3 0.913812 0.406138 30 -15 0 0 0 arr
deba@2079
   109
5 0.3 1 0 33 13 0 0 0 arr
deba@2079
   110
11.1655 0.3 0.164399 0.986394 -22 5 1 0 0 arr
deba@2079
   111
grestore
deba@2079
   112
%Nodes:
deba@2079
   113
gsave
deba@2079
   114
-27 5 1 1 1 1 nc
deba@2079
   115
-22 5 1 1 1 1 nc
deba@2079
   116
-13 -4 1 1 1 1 nc
deba@2079
   117
-8 -4 1 1 1 1 nc
deba@2079
   118
-9 15 1 1 1 1 nc
deba@2079
   119
-4 15 1 1 1 1 nc
deba@2079
   120
3 -9 1 1 1 1 nc
deba@2079
   121
8 -9 1 1 1 1 nc
deba@2079
   122
3 3 1 1 1 1 nc
deba@2079
   123
8 3 1 1 1 1 nc
deba@2079
   124
1 21 1 1 1 1 nc
deba@2079
   125
6 21 1 1 1 1 nc
deba@2079
   126
25 -5 1 1 1 1 nc
deba@2079
   127
30 -5 1 1 1 1 nc
deba@2079
   128
28 13 1 1 1 1 nc
deba@2079
   129
33 13 1 1 1 1 nc
deba@2079
   130
45 3 1 1 1 1 nc
deba@2079
   131
50 3 1 1 1 1 nc
deba@2079
   132
-18 -14 1 1 1 1 nc
deba@2079
   133
-13 -14 1 1 1 1 nc
deba@2079
   134
25 -15 1 1 1 1 nc
deba@2079
   135
30 -15 1 1 1 1 nc
deba@2079
   136
-12 7 1 1 1 1 nc
deba@2079
   137
-7 7 1 1 1 1 nc
deba@2079
   138
39 -11 1 1 1 1 nc
deba@2079
   139
44 -11 1 1 1 1 nc
deba@2079
   140
39 13 1 1 1 1 nc
deba@2079
   141
44 13 1 1 1 1 nc
deba@2079
   142
-20 17 1 1 1 1 nc
deba@2079
   143
-15 17 1 1 1 1 nc
deba@2079
   144
grestore
deba@2079
   145
grestore
deba@2079
   146
showpage