G6 icon indicating copy to clipboard operation
G6 copied to clipboard

一些容易误解的点

Open dingyang9642 opened this issue 1 year ago • 2 comments

问题描述

1、什么是当前元素?画布显示多个元素,当前元素是? // 以当前元素位置为中心,缩小到 0.5 graph.zoom(0.5); 2、zoom在gis中的概念是视窗宽代表的实际距离宽,而不是一个scale的概念,此处概念混淆容易造成误导 graph.zoom(0.5); 3、执行自定义布局后,如果想要缩放且固定画布到某一比例尺&位置时,怎么操作呢?目前是移动到某一个位置时,感觉在布局完成后,G6还有后续内置操作把画布做了一次自适应改变了开发者的自定义位置 4、graph.moveto(0,0) 希望这个方法能够详细一点描述,在自定义布局execte是graph.moveto(0,0)时,为啥不是在左上角,而是往右下偏移了一些位置?

重现链接

重现步骤

预期行为

平台

  • 操作系统: [macOS, Windows, Linux, React Native ...]
  • 网页浏览器: [Google Chrome, Safari, Firefox]
  • G6 版本: [4.5.1 ... ]

屏幕截图或视频(可选)

No response

补充说明(可选)

No response

dingyang9642 avatar Aug 10 '22 06:08 dingyang9642

// 以当前元素位置为中心,缩小到 0.5

描述有误,graph.zoom 未指定缩放中心时,是以绘制坐标的原点为缩放中心。文档会尽快修正

zoom在gis中的概念是视窗宽代表的实际距离宽,而不是一个scale的概念,此处概念混淆容易造成误导

我理解这里跟 GIS 的概念不应该放在一起看。图上的 scale 是 1 就代表的是 1 : 1 绘制,而地图的 1 :1 绘制需要 scale 很大。G6 中有两个 API,graph.zoom 和 graph.zoomTo,前者是以当前比例为基础,继续缩放;后者是以 1 为基础缩放到目标比例。

3、执行自定义布局后,如果想要缩放且固定画布到某一比例尺&位置时,怎么操作呢?目前是移动到某一个位置时,感觉在布局完成后,G6还有后续内置操作把画布做了一次自适应改变了开发者的自定义位置

G6 布局完成后的自适应,是用户在图实例上配置了 fitView 或者 fitCenter,才进行的自动适配。你要是不配置,就不会有任何平移和缩放,此时你可以自己通过 graph.translate graph.move graph.moveTo graph.zoom graph.zoomTo 进行视图的控制

4、graph.moveto(0,0) 希望这个方法能够详细一点描述,在自定义布局execte是graph.moveto(0,0)时,为啥不是在左上角,而是往右下偏移了一些位置?

理论上 graph.moveTo(0,0) 是图内容包围盒的左上角对齐到绘制坐标的 (0,0) 位置。视觉上看起来没有对齐,有可能是绘制坐标系在其它的操作下被平移了。我理解你希望的是图内容包围盒左上角对齐到视窗的左上角,那么应该先获取视窗左上角对应的绘制坐标 graph.getCanvasByViewport(0, 0) 并作为参数传给 moveTo。关于绘制坐标系、视窗坐标系等,见文档 G6 坐标解析:https://antv-g6.gitee.io/zh/docs/manual/advanced/coordinate-system

Yanyan-Wang avatar Aug 19 '22 07:08 Yanyan-Wang

@Yanyan-Wang

你好,看了文档和你这里的说明,依然迷迷糊糊,有几个小问题:

首先建议在文档里写清楚一点,graph.translate, graph.moveTo 这样的 API,里面的参数 x, y, dx, dy 究竟是哪个坐标系的。

我目前认为是 Pointx/PointY ?

绘制坐标系

是指 Pointx/PointY 坐标系吗?

理论上 graph.moveTo(0,0) 是图内容包围盒的左上角对齐到绘制坐标的 (0,0) 位置

文档内定义了三种坐标系,我理解这句话的意思就是:把 pointxy坐标系的(0,0) 移动到 canvas坐标系的(0,0),是这样么。

aaronz0 avatar Aug 23 '22 01:08 aaronz0

这些 API 指的都是绘制坐标系 pointX/pointY ~ @vhhsyt

Yanyan-Wang avatar Nov 29 '22 09:11 Yanyan-Wang