#1215·diagrams

基于方向的默认尾端端口/ 头端端口以停止从图标形状的节点上浮起的边缘

作者: bmd1905创建于 2026年5月6日更新于 2026年5月6日

□ 总结

即使使用"splines="spline"(安全组合从#1214起),图像形状图标节点上的边尾也附着在源/目标的右中心/左中心——它们附加在bbox的任意一角恰好最接近于另一个端点. 用 “方向='LR” 和 AWS/k8s 图标节点(它们使用 “形状=无,图像缩放=真,固定大小=真” ) , 将视觉读取为** 开始或结束于中空**, 上/下数像素是它们应该指向的图标。

这是"Ughly LLM-reserved architecture starts"的主要剩余来源,一旦遵循了#1214'的'ortho'建议. 它可以通过为边缘设置合理的默认端口来在`图表 ' 本身(不依赖上游图形)中加以修复。

□再现.

zz
从图表导入图表
AWS.网络导入ELB
AWS. 计算导入 EC2

有图 ("浮动- 尾- repro",方向="LR",显示= 虚假
图 attr={"泉":"泉"}:
alb = ELB ("alb") 缩写为:
alb → [EC2("web-1"), EC2("web-2"), EC2("web-3")].

请检查date=中的日期值 (帮助) SVG. alb'图标' bbox中心位于y = -158' (例如). M ' 命令的三个边从y = -203'(box上角)开始,而不是`y = -158'。 因此可见箭尾为~45px上方图标. 同样的缺陷也发生在多行扇入头端.

□被观察

  • 图标 bbox上下角的输出 SVG 附加中的边尾/头部坐标,而不是 LR 版式所读取的中心面.
  • 对于LR图,这意味着"从图标上方离开并重新从另一个图标上方进入的尖端",而不是干净的横向流.
  • 最引人注目的是:
  • 粉丝出局/粉丝入局,即源头和N目标处于不同的垂直级别;
  • 终点不同Y的任何跨集群边缘;
  • 多行布局中行间的任何边缘(在真实的建筑图中非常常见).

□ 预期

对于方向='LR',边缘应使来源的**东**相(右-中)并默认地到达目标的**西**相(左-中)。 同样地,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

这符合每个手工绘制的架构图所做的以及用户直观的期望.

□ 根源

在未给出明确端口时, Graphviz 路线从一个节点的边框最靠近的一角起. 对于文本形状的节点(平面Graphviz实例中的默认),bbox是短的,因此视觉错误很小. 对于'diagrams''图标节点——'shape=noone,图像缩放= true,固定大小= true',并用 QQheight=1.9'——bbox是高的,所以角-vs-center错误是大的并读取为浮箭.

在边缘设置 " 尾口 " / " 头口 " 加以固定。 图书馆目前从未设置它们 。

注:这只与sprine='spline'/`'polyline''curved''line''相通。 以'splines='ortho'来表示,Graphviz默默地忽略了'tailport'/'headport'(上游图viz) . . . . . . .

内容来源: mingrammer/diagrams