Вы должны перейти на исходный код для этого.Посмотрите на "lib / common / arrows.c".Вы обнаружите, что вам необходимо:
- Добавить #define наподобие ARR_TYPE_YOURARROWNAME
- добавить запись в Arrownames [] с именем, которое вы будете использовать в коде для стрелки иdefine.
- напишите прототип вашей функции стрелки (см. строку 115), прочитайте точки ниже
- добавьте вашу функцию в массив Arrowtypes [] запись с определением, которое вы написали ранее,ширина пера, имя вашей функции стрелки, которая будет выглядеть примерно так: arrow_type_yourarrowname
- напишите свою собственную функцию стрелки.
Чтобы написать свою функцию, взгляните на arrow_type_normal (), он принимает 6 параметров: задание (вам не нужно об этом заботиться, просто используйте его, как в этой функции), две точки ('p' и 'u'), размер стрелки, ширину ручки и флаг.Если вам не нужны разные версии вашей стрелки или если вы хотите игнорировать модификаторы (перевернутые стрелки и т. П.), Игнорируйте параметр flag.
Тогда функция в основном берет две точки pи u (которые являются структурами с атрибутами 'x' и 'y' в них) и объединяют их, создавая массив с именем [], переданный в gvrender_polygon (), который в конечном итоге будет отображать форму стрелки.arrow_type_normal () также портит ширину пера и ширину стрелки.
Подведение итогов: подготовьте graphviz для принятия имени стрелки, сделав первые шаги, затем создайте функцию, которая создаст форму стрелки и которая вызовет gvrender_polygon или gvrender_polyline (еслижелание).
Я еще не пробовал, но это должно сработать.