我使用Graphviz(主要是dot和fdp)自动生成一些我需要的图表.对于这些图表,我需要一些不属于标准箭头集合的特殊箭头:一个大的白色三角形内部的小黑色三角形,以及指向下方的黑色三角形.
添加此类箭头的最佳方法是什么?如果有必要,我不介意破解源代码.我应该从哪里开始?
您必须为此更改源代码。看一下“lib/common/arrows.c”。你会发现你必须:
为了编写你的函数,请看一下 arrow_type_normal(),它需要 6 个参数:job(你不必关心这个,只需像在这个函数中一样使用它),两个点('p' 和 'u' )、箭头大小、笔宽和标志。如果您不关心制作不同版本的箭头,或者您希望忽略修饰符(反向箭头等),请忽略标志参数。
然后,该函数基本上采用两个点 p 和 u(它们是带有“x”和“y”属性的结构)并将它们组合起来创建一个名为 a[] 的数组,传递给 gvrender_polygon() ,最终将渲染您的箭头形状。arrow_type_normal() 也会弄乱画笔宽度和箭头宽度。
总结:准备 graphviz 接受您的箭头名称,执行第一步,然后创建一个函数来创建箭头形状,并调用 gvrender_polygon 或 gvrender_polyline (如果您愿意)。
我还没有尝试过,但它应该有效。
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |