弧形边 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 段)构建碰撞箱,用于选中检测。