How to generate pointy arrow heads

Hi

Maybe I am doing something silly here but it appears to me that the style of the arrow head is inconsistent between SVG and GIF/PNG/JPEG when penwidth > 1.
The same issue happens when using style = "setlinewidth(X)" (which is now deprecated)

What I am really trying to achieve is to generate GIF images that have arrows with "fat bodies" and pointy arrows heads. Is this possible with 2.38? I know it was on 2.28.

Steps to reproduce the issue:
=============================
1) Create a text file, let's say "home.dot" and paste the following code in it.

digraph Workflow_IVR {
rankdir = LR;
ranksep = "equally";
size = "159.5,158";
orientation = port;

"1:Originated" -> "2:Arrived" [
label = "100.0%",
labeltooltip = "",
edgetooltip = "",
tooltip = "",
penwidth=10,
arrowsize=1,
fontsize = 10,
arrowhead="normal",
arrowtail="none",
color = "#71B771",
fontname = Verdana
];
}

2) Generate the gif file
dot -Tgif home.dot -o home.gif

3) Generate the svg file
dot -Tsvg home.dot -o home.svg

4) Compare the gif and svg files

Expected output
===============
1) the style of the arrow head should be the same for the gif file and SVG file.
2) the arrow head should be "pointy" on both images. (pointy arrows are nicer IMHO ;)

Actual output
=============
1) the arrow head in the SVG file is pointy
2) the arrow head in the GIF file is rounded (due to the penwidth)

More information
================
1) The arrow head in the GIF file is pointy if using graphviz 2.28 (using penwidth=10 or style = "setlinewidth(10)")
2) The arrow head in the GIF file is rounded if using graphviz 2.36 or 2.38

Any idea?

Regards,
Michel

AttachmentSize
home.gif3.41 KB

Previous to 2.36, we didn't

Previous to 2.36, we didn't apply pen width to arrowheads but just drew a simple triangle. Now arrowheads use the pen width as well, but for some reason we use a rounded line join style, so you get the rounded arrowheads. I'm trying to find out if there is a reason for this, as most systems use a mitered join by default. Meanwhile, if you built from source, you can just comment out the line

cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND);

in plugin/cairo/gvrender_pango.c and rebuild.

Thanks

Thanks for the prompt response. Much appreciated.

I will give it a go at building from the sources.

Regards,

Michel

I did some searching and,

I did some searching and, despite our explicitly specifying rounded line joints in cairo and quartz, that doesn't seem right. So I have removed these from the code. The initial tests don't seem to show anything breaking. Thanks for pointing this out. 

Thanks for the update. Are

Thanks for the update.

Are you planning to commit your code changes to the git repo? If so will I be able to pick up your changes in the latest build of 2.39? I am asking this because I am not successfull so far with building from the sources. (My own fault I am sure. I will keep trying).

Regards,

Michel

Yes, the changes have been

Yes, the changes have been the code since the 18th.

Brilliant! thanks!

Brilliant! thanks!

Recent comments