弧形边 ArcEdge

说明

弧形边(ArcEdge)是 Project Graph 中的一种有向边,它用圆弧替代了直线来连接两个节点。弧形边通过三点定圆的方式计算,其中第三个点由 offset 参数控制,决定弧的弯曲方向和程度。

弧形边目前只支持一条直线边转换为弧形边,如果你需要创建一条有弧度的曲线,可以将已有的直线边(LineEdge)转换为弧形边,然后进行调节。

转换

选中一条或多条直线边(LineEdge),使用以下任一方式转换为弧形边:

  • 在设置中找到 转换为弧形边 命令
  • 使用对应的快捷键(如果有绑定)

转换时会保留原连线的文字、颜色、连接点等信息,并自动赋予一个默认的弯曲偏移量。

自环(起点和终点为同一节点)不支持转换为弧形边。

属性

offset(弯曲偏移量)

offset 控制圆弧的弯曲方向和程度,单位为世界坐标:

  • 0 — 退化为直线
  • 正数 — 向 AB 连线左侧弯曲
  • 负数 — 向 AB 连线右侧弯曲

当 offset 过小导致三点近乎共线时(圆弧半径超过 1e6),会降级为直线绘制。

textPosition(文字位置)

textPosition 控制弧线上文字沿弧线的位置比例:

  • 0.0 — 靠近源节点
  • 0.5 — 弧线中点(默认)
  • 1.0 — 靠近目标节点

交互

调节弯曲度

选中弧形边后直接拖拽,鼠标移动方向垂直于 AB 连线方向,改变弧线的 offset 值,从而实时调整弯曲方向和程度。

调节文字位置

按住 Ctrl(Mac 为 Cmd)并拖拽空白区域,鼠标移动方向沿 AB 连线方向投影,改变弧线上的 textPosition 值,从而移动文字在弧线上的位置。

Ctrl(Cmd)+ 拖拽到实体上时,会切换为"更改连线目标节点"操作。在空白区域拖拽才会调整文字位置。

原理

几何计算

弧形边以源节点中心、目标节点中心和由 offset 决定的控制点这三个点,通过三点定圆计算圆心和半径:

使用端点裁剪技术,圆弧的实际起点和终点被裁剪到源节点和目标节点矩形边缘上,确保箭头不与节点重叠。

箭头方向

箭头方向为圆弧在终点处的切线方向,沿弧线走向指向目标。

碰撞检测

弧线通过线段近似采样(默认 20 段)构建碰撞箱,用于选中检测。

On this page