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...

演示

Settings
scale
1
translateX
0
translateY
0

在位置计算中,我们经常需要做坐标转换,在 X6 中,存在两个坐标系,一个是画布本地坐标系 local,一个是画布坐标系 graph,有时候还要涉及到浏览器坐标系,这里统一做一个解释:

  • local:画布本地坐标系,默认情况下和 graph 坐标系一致,但是会随着画布的缩放和平移发生改变。画布中所有节点的坐标都是以 local 坐标系为准。
  • graph:画布坐标系,也就是我们看到的画布视口,它不会随着画布缩放和平移而改变。
  • client:浏览器坐标系,鼠标事件中的 e.clinetX、e.clientY 就是相对于浏览器坐标系。
  • page:页面坐标系,与 client 相比,page 会考虑页面水平和垂直方向滚动。鼠标事件中的 e.pageX、e.pageY 就是相对于页面坐标系。

方法

pageToLocal(...)

pageToLocal(rect: Rectangle.RectangleLike): Rectangle
pageToLocal(x: number, y: number, width: number, height: number): Rectangle
pageToLocal(p: Point.PointLike): Point
pageToLocal(x: number, y: number): Point

将页面坐标转换为画布本地坐标。

localToPage(...)

localToPage(rect: Rectangle.RectangleLike): Rectangle
localToPage(x: number, y: number, width: number, height: number): Rectangle
localToPage(p: Point.PointLike): Point
localToPage(x: number, y: number): Point

将画布本地坐标转换为页面坐标。

clientToLocal(...)

clientToLocal(rect: Rectangle.RectangleLike): Rectangle
clientToLocal(x: number, y: number, width: number, height: number): Rectangle
clientToLocal(p: Point.PointLike): Point
clientToLocal(x: number, y: number): Point

将页面的浏览器坐标转换画布本地坐标。

localToClient(...)

localToClient(rect: Rectangle.RectangleLike): Rectangle
localToClient(x: number, y: number, width: number, height: number): Rectangle
localToClient(p: Point.PointLike): Point
localToClient(x: number, y: number): Point

将画布本地坐标转换为浏览器坐标。

localToGraph(...)

localToGraph(rect: Rectangle.RectangleLike): Rectangle
localToGraph(x: number, y: number, width: number, height: number): Rectangle
localToGraphPoint(p: Point.PointLike): Point
localToGraphPoint(x: number, y: number): Point

将画布本地坐标转换为画布坐标。

graphToLocal(...)

graphToLocal(rect: Rectangle.RectangleLike): Rectangle
graphToLocal(x: number, y: number, width: number, height: number): Rectangle
graphToLocal(p: Point.PointLike): Point
graphToLocal(x: number, y: number): Point

将画布坐标转换为画布本地坐标。

snapToGrid(...)

snapToGrid(p: Point.PointLike): Point
snapToGrid(x: number, y: number): Point

将浏览器坐标转换为画布本地坐标并对齐到画布网格。