Формы стрелок
Формы стрелок можно задавать и именовать с помощью следующей простой грамматики. Терминалы выделены полужирным шрифтом, а нетерминалы — курсивом. Литералы заключены в одинарные кавычки. Квадратные скобки [ и ] обозначают необязательные элементы. Вертикальные черты | разделяют альтернативы.
Грамматика
| arrowname | : | aname [ aname [ aname [ aname ] ] ] |
| aname | : | [ modifiers ] shape |
| modifiers | : | [ 'o' ] [ side ] |
| side | : | 'l' |
| | | 'r' | |
| shape | : | box |
| | | crow | |
| | | curve | |
| | | icurve | |
| | | diamond | |
| | | dot | |
| | | inv | |
| | | none | |
| | | normal | |
| | | tee | |
| | | vee |
Простые формы
| Форма | Изображение |
|---|---|
box | |
crow | |
curve | |
diamond | |
dot | |
icurve | |
inv | |
none | |
normal | |
tee | |
vee |
Модификаторы форм
Модификаторы:
'l'- Обрезает форму, оставляя только часть слева от ребра.
'r'- Обрезает форму, оставляя только часть справа от ребра.
'o'- Использует незамкнутый (незаполненный) вариант формы.
Левая и правая стороны определяются относительно направления взгляда от ребра к точке, в которой стрелка «касается» узла.
Например, форма стрелки lteeoldiamond разбирается как 'l' 'tee' 'o' 'l' 'diamond' и соответствует форме:
Обратите внимание: первая заданная форма стрелки располагается ближе всего к узлу. Последующие формы стрелок, если они заданы, располагаются дальше от узла. Кроме того, форма none занимает место, поэтому, например, наконечник стрелки nonenormal отличается от normal.
Не все синтаксически допустимые сочетания модификаторов имеют смысл или являются семантически корректными. Например, ни один из модификаторов не имеет смысла с none. В следующей таблице указано, какие модификаторы допустимы для тех или иных форм.
| Модификатор | 'l'/'r' | o |
|---|---|---|
box | ✅ | ✅ |
crow | ✅ | |
curve | ✅ | |
diamond | ✅ | ✅ |
dot | ✅ | |
icurve | ✅ | |
inv | ✅ | ✅ |
none | ||
normal | ✅ | ✅ |
tee | ✅ | |
vee | ✅ |
Таким образом, получается 42 различные формы стрелок. Необязательные вторая, третья и четвертая формы могут независимо принимать любое из 42 значений, за исключением того, что последняя не может быть none, поскольку это создало бы избыточную форму. Итак, существует 41 × 42³ + 41 × 42² + 41 × 42 + 42 = 3,111,696 различных комбинаций.
Ниже показаны 42 возможные комбинации с одной формой стрелки. Узел, к которому прикреплена стрелка, не изображен, но находился бы справа от ребра.
| box | lbox | rbox | obox | olbox | orbox |
| crow | lcrow | rcrow | |||
| diamond | ldiamond | rdiamond | odiamond | oldiamond | ordiamond |
| dot | odot | ||||
| inv | linv | rinv | oinv | olinv | orinv |
| none | |||||
| normal | lnormal | rnormal | onormal | olnormal | ornormal |
| tee | ltee | rtee | |||
| vee | lvee | rvee | |||
| curve | lcurve | rcurve | icurve | licurve | ricurve |
© 2025 The Graphviz Authors
Licensed under the Eclipse Public License 1.0.
https://www.graphviz.org/doc/info/arrows.html