logo

X6

  • 文档
  • API
  • 图表示例
  • 常见问题
  • 更新日志
  • XFlow
  • 所有产品antv logo arrow
  • 2.x
  • 画布
    • 画布
    • 网格
    • 背景
    • 画布平移
    • 画布缩放
    • 视口变换
    • 坐标系
  • 元素
    • 元素
    • 节点
    • 边
    • 标签
    • 箭头
    • 元素属性
    • 交互
  • MVC
    • 模型
    • 视图
  • 扩展
    • 节点工具
    • 边上工具
    • 路由
    • 连接器
    • 节点的锚点
    • 边的锚点
    • 连接点
    • 连接桩布局
    • 连接桩标签布局
    • 属性
    • 高亮器
    • 滤镜

边的锚点

上一篇
节点的锚点
下一篇
连接点

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

当边连接到边时,可以通过 EdgeAnchor 来指定被连接的边上的锚点,锚点与连接点 ConnectionPoint 共同确定了边的起点和终点。

  • 起点:从第一个路径点或目标节点的中心(没有路径点时)画一条参考线到源节点的锚点,然后根据 connectionPoint 指定的交点计算方法,计算参考线与图形的交点,该交点就是边的起点。
  • 终点:从最后一个路径点或源节点的中心(没有路径点时)画一条参考线到目标节点的锚点,然后根据 connectionPoint 指定的交点计算方法,计算参考线与图形的交点,该交点就是边的终点。

X6 内置了以下几种锚点定义。

  • ratio 默认值,锚点位于被连接的边的指定比例处。
  • length 锚点位于被连接的边的指定长度处。
  • closest 使用距离参照点最近的点作为锚点。
  • orth 正交锚点。
Anchor
ratio
50%

内置锚点

ratio

锚点位于被连接的边的指定比例处。支持如下参数:

参数名参数类型是否必选默认值参数说明
rationumber否0.5距离边起点多少比例位置处,默认位于边长度的中心。

length

锚点位于被连接的边的指定长度处。支持如下参数:

参数名参数类型是否必选默认值参数说明
lengthnumber否20距离边的起点多少长度位置处,默认位于偏离起点 20px 处。

closest

距离参照点最近的点作为锚点。

orth

正交锚点。支持如下参数:

参数名参数类型是否必选默认值参数说明
fallbackAtnumber | string否undefined当没有正交点时,使用 fallbackAt 指定的点作为锚点。
当 fallbackAt 为百分比字符串时,表示锚点位于距离起点多少比例位置处。
当 fallbackAt 为数字时,表示锚点位于距离起点多少长度位置处。

自定义锚点

边的锚点定义是一个具有如下签名的函数,返回锚点。

export type Definition<T> = (
this: EdgeView,
view: EdgeView,
magnet: SVGElement,
ref: Point.PointLike | SVGElement,
args: T,
) => Point
参数名参数类型参数说明
thisEdgeView边的视图。
viewEdgeView连接的边的视图。
magnetSVGElement连接的边的元素。
refPoint.PointLike | SVGElement参照点/元素。
argsT参数。

完成锚点定义后,我们先注册锚点:

Graph.registerEdgeAnchor('custom-anchor', ...)

注册以后我们就可以通过锚点名称来使用:

new Graph({
connecting: {
edgeAnchor: {
name: 'custom-anchor',
},
},
})