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

配置

scaling

通过 scaling 配置画布的最小或最大缩放级别。

new Graph({
scaling: {
min: 0.05, // 默认值为 0.01
max: 12, // 默认值为 16
},
})

方法

resize(...)

resize(width?: number, height?: number): this

设置画布大小。

名称类型必选默认值描述
widthnumber画布宽度,缺省时宽度保持不变。
heightnumber画布高度,缺省时高度保持不变。

zoom(...)

zoom(): number

获取画布缩放比例。

zoom(factor: number, options?: ZoomOptions): this

缩放画布。

名称类型必选默认值描述
factornumber✓缩放比例。
options.absolutebooleanfalse是否为绝对缩放,
options.minScalenumber-最小缩放比例。
options.maxScalenumber-最大缩放比例。
options.scaleGridnumber-修正缩放比例为 scaleGrid 的整倍数。
options.centerPoint.PointLike-缩放中心。

当 options.absolute 为 true 时,表示将画布缩放到 factor 代表的值,否则 factor 表示放大/缩小的因子,当 factor 为正数时表示画布放大画布,当 factor 为负数时表示缩小画布。

zoomTo(...)

zoomTo(factor: number, options?: ZoomOptions): this

缩放画布到指定的比例。

名称类型必选默认值描述
factornumber✓缩放比例。
options.minScalenumber-最小缩放比例。
options.maxScalenumber-最大缩放比例。
options.scaleGridnumber-修正缩放比例为 scaleGrid 的整倍数。
options.centerPoint.PointLike-缩放中心。

zoomToFit(...)

zoomToFit(options?: Options): this

缩放画布内容,使画布内容充满视口。

名称类型必选默认值描述
rectRectangle.RectangleLike✓矩形区域。
options.paddingnumber | { left: number, top: number, right: number, bottom: number }-边距。
options.contentAreaRectangle.RectangleLike-内容区域,默认获取画布内容区域。
options.viewportAreaRectangle.RectangleLike-视口区域,默认获取画布视口。
options.scaleGridnumber-修正缩放比例为 scaleGrid 的整倍数。
options.minScalenumber-最小缩放比例。
options.maxScalenumber-最大缩放比例。
options.minScaleXnumber-X 轴方向的最小缩放比例。
options.maxScaleXnumber-X 轴方向的最大缩放比例。
options.minScaleYnumber-Y 轴方向的最小缩放比例。
options.maxScaleYnumber-Y 轴方向的最大缩放比例。
options.preserveAspectRatiobooleanfalse是否保持长宽比。
options.useCellGeometrybooleantrue是否使用节点/边的几何信息(Model)计算包围盒。

rotate(...)

rotate(): {
angle: number
cx?: number
cy?: number
}

获取画布的旋转角度和旋转中心。

rotate(angle: number, cx?: number, cy?: number): this

旋转画布。

名称类型必选默认值描述
anglenumber✓旋转角度。
cxnumber-旋转中心 x 坐标,默认使用画布中心。
cynumber-旋转中心 y 坐标,默认使用画布中心。

translate(...)

translate(): {
tx: number
ty: number
}

获取画布的平移量。

translate(tx: number, ty: number): this

平移画布。

名称类型必选默认值描述
txnumber✓X 轴平移量。
tynumber✓Y 轴平移量。

getContentArea(...)

getContentArea(options?: Transform.GetContentAreaOptions): Rectangle

获取画布内容的矩形区域,使用画布本地坐标表示。

名称类型必选默认值描述
options.useCellGeometrybooleantrue是否使用节点/边的几何信息(Model)来计算画布内容大小。

getContentBBox(...)

getContentBBox(options?: Transform.GetContentAreaOptions): Rectangle

获取画布内容的矩形区域,使用画布坐标表示。

名称类型必选默认值描述
options.useCellGeometrybooleantrue是否使用节点/边的几何信息(Model)来计算画布内容大小。

center(...)

center(options?: CenterOptions): this

将画布中心与视口中心对齐。

名称类型必选默认值描述
options.paddingnumber | Padding-边距,只在 scroller 画布中生效

centerPoint(...)

centerPoint(x?: number | null, y?: number | null, options?: CenterOptions): this

将 x 和 y 指定的点(相对于画布)与视口中心对齐。

名称类型必选默认值描述
xnumber-相对一画布的 x 轴坐标。
ynumber-相对一画布的 y 轴坐标。
options.paddingnumber | Padding-边距,只在 scroller 画布中生效
graph.centerPoint(100, 200)
graph.centerPoint(100, null, { padding: { left: 100 } })
graph.centerPoint(null, 200, { padding: { left: 100 } })

centerContent(...)

centerContent(options?: PositionContentOptions): this

将画布内容中心与视口中心对齐。

名称类型必选默认值描述
options.paddingnumber | Padding-边距,只在 scroller 画布中生效
options.useCellGeometrybooleantrue是否通过节点/边的几何信息(Model)计算内容区域。
graph.centerContent()
graph.centerContent({ padding: { left: 100 } })

centerCell(...)

centerCell(options?: CenterOptions): this

将节点/边的中心与视口中心对齐。

名称类型必选默认值描述
cellCell✓节点/边。
options.paddingnumber | Padding-边距,只在 scroller 画布中生效
graph.centerCell(cell)
graph.centerCell(cell, { padding: { left: 100 } })

positionContent(...)

positionContent(pos: Position, options?: PositionContentOptions): this

将 pos 代表的画布内容 BBox 位置与对应的画布视口位置对齐。如 pos 为 'bottom-left' 时,表示将画布内容的左下角与视口的左下角对齐。

名称类型必选默认值描述
posPosition✓对齐位置。
options.paddingnumber | Padding-边距,只在 scroller 画布中生效
options.useCellGeometrybooleantrue是否通过节点/边的几何信息(Model)计算内容区域。

支持的对齐位置有:

type Position =
| 'center'
| 'top'
| 'top-right'
| 'top-left'
| 'right'
| 'bottom-right'
| 'bottom'
| 'bottom-left'
| 'left'

positionCell(...)

positionCell(cell: Cell, pos: Direction, options?: CenterOptions): this

将 pos 代表的节点/边 BBox 位置与对应的画布视口位置对齐。如 pos 为 'bottom-left' 时,表示将节点/边的左下角与视口的左下角对齐。

名称类型必选默认值描述
cellCell✓节点/边。
posPosition✓对齐位置。
options.paddingnumber | Padding-边距,只在 scroller 画布中生效
type Position =
| 'center'
| 'top'
| 'top-right'
| 'top-left'
| 'right'
| 'bottom-right'
| 'bottom'
| 'bottom-left'
| 'left'

positionRect(...)

positionRect(rect: Rectangle.RectangleLike, pos: Direction, options?: CenterOptions): this

将 pos 代表的矩形位置与对应的画布视口位置对齐。如 pos 为 'bottom-left' 时,表示将矩形的左下角与视口的左下角对齐。

名称类型必选默认值描述
rectRectangle.RectangleLike✓矩形区域。
posPosition✓对齐位置。
options.paddingnumber | Padding-边距,只在 scroller 画布中生效
type Position =
| 'center'
| 'top'
| 'top-right'
| 'top-left'
| 'right'
| 'bottom-right'
| 'bottom'
| 'bottom-left'
| 'left'

positionPoint(...)

positionPoint(point: Point.PointLike, x: number | string, y: number | string options?: CenterOptions): this

将 point 指定的点(相对于画布)与 x 和 y 代表的画布视口位置对齐。

名称类型必选默认值描述
pointPoint.PointLike✓被对齐的点。
xnumber | string✓视口 x 位置,支持百分比和负值。
ynumber | string✓视口 y 位置,支持百分比和负值。
options.paddingnumber | Padding-边距,只在 scroller 画布中生效
// 将画布的左上角与视口中的点 [100, 50] 对齐
graph.positionPoint({ x: 0, y: 0 }, 100, 50)
// 将画布上的点 { x: 30, y: 80 } 与离视口左侧 25% 和离视口底部 40px 的位置对齐
graph.positionPoint({ x: 30, y: 80 }, '25%', -40)
// 将画布上的点 { x: 30, y: 80 } 与离视口右侧 25% 和离视口顶部 40px 的位置对齐
graph.positionPoint({ x: 30, y: 80 }, '-25%', 40)