矢印シェイプ
矢印の形状は、以下の簡単な文法を使用して指定および命名できます。終端記号は太字で、非終端記号はイタリック体で示します。リテラル文字はシングルクォートで囲みます。角括弧 `[` と `]` はオプションの項目を囲みます。縦棒 `|` は選択肢を区切ります。
文法
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'
- シェイプの open(塗りつぶされていない)バージョンを使用します。
左右は、矢印がノードに「接触」する点に向かってエッジから見た方向として定義されます。
例として、矢印シェイプ `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種類の矢印シェイプが得られます。オプションの2番目、3番目、4番目のシェイプは、それぞれ独立して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 |