Re: [graphviz-interest] Straight line drawn as a curve (Petersen.gv)

John Ellson <[email protected]>
Newsgroups gmane.comp.video.graphviz
Message-ID <[email protected]>
On 08/21/2013 11:20 AM, Emden R. Gansner wrote:
> On 8/21/13 5:49 AM, Ryan Schmidt wrote:
>> Why has Graphviz drawn this line as three connected Bezier curves? 
>> The X-coordinate of each point is identical; it seems that this could 
>> just as easily have been a straight line from 17,647.95 directly to 
>> 17,108.05.
> Short answer: it is an overlooked optimization.
>
> After placing the nodes on discrete ranks, dot adds dummy nodes to 
> each long edge so that all edges join adjacent ranks. This graph is 
> used for reducing
> crossings and node positioning. During edge routing, dot constructs a 
> collection of boxes in which the edge is routed to avoid nodes, other 
> edges, etc. It
> also recognizes stretches where it can just use a straight line 
> segment. For the edge 0 -- 5, the edge is constructed by creating a 
> Bezier through some boxes
> at the beginning, followed by a vertical line (represented as a 
> degenerate Bezier), and ending with another Bezier through some boxes 
> at the end. In this case,
> it just happens to occur that the first and last Beziers are also 
> vertical line segments collinear with the middle segment. This would 
> be fairly rare, so there is
> no check for it, and no attempt to simplify the final output.
>
>     Emden
Also, note that (AFAIK) we don't have a way to syntactically distinguish 
between 2pt lines and 4pt beziers in the "pos" attribute syntax.




_______________________________________________
[email protected]
http://lists.research.att.com/mailman/listinfo/graphviz-interest
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.