tags:

views:

51

answers:

2

I have a simple dot diagram to show how to perform tests.

PerformTests;                                     PerformTests<---+
PerformTests -> TestsPassed;                            |         |
TestsPassed [shape="diamond"];                          v         |
TestsPassed -> Release [label="Yes"];             TestsPassed     |
TestsPassed -> FixErrors [label="No"];                 Y|  N\     |
FixErrors -> PerformTests;                              v    FixErrors
                                                     Release 

The diagram shows square boxes for all nodes, except TestPassed that has a diamond shape. My issue is here. I'd like the edge that goes outside of the diamond for No to be getting out of the diamond at the right (east) instead of oblique down-right (south-east).

           What I have        What I want
                ^                  ^    
               / \                / \   
              <   >              <   >--->  
               \ /\               \ /   
                v  \               v    

I've seen such compass_pt in the dot grammar, but cannot figure out how to use it. I what I want possible, and how to do it?

A: 

Simply add the compass_pt :e right after the node name in the edge declaration (line 5).

PerformTests;                                     PerformTests<-----+
PerformTests -> TestsPassed;                            |           |
TestsPassed [shape="diamond"];                          v     N     |
TestsPassed -> Release [label="Yes"];             TestsPassed --> FixErrors
TestsPassed:e -> FixErrors [label="No"];               Y|  
FixErrors -> PerformTests;                              v
                                                     Release 
Didier Trosset
A: 

You also might want to try using the constraint='false' attribute:

http://martin-loetzsch.de/DOTML/constraint.html

Martin Loetzsch