gpt4 book ai didi

javascript - 使用 svg.js 和 svg-pan-zoom 如何获取当前 "viewport"中心点?

转载 作者:行者123 更新时间:2023-11-28 15:27:50 33 4
gpt4 key购买 nike

我正在使用 svg.js 和出色的 svg-pan-zoom 插件 ( https://github.com/ariutta/svg-pan-zoom )。

现在我想要一个按钮,当我单击它时,它会在我看到的视口(viewport)的当前中心点上绘制一个圆圈(因此位置是动态的,具体取决于我所做的平移/缩放)。

我设置了 quick example here在指定位置静态绘制圆。

请注意,我有一些特定的需求:我正在显示一个具有如下缩放因子的“背景”图像:

var map = mainWindow.group();
map.addClass('seatMap');
map.image('http://upload.wikimedia.org/wikipedia/commons/b/b3/World-map-2004-cia-factbook-large-1.7m-whitespace-removed.jpg').loaded(function () {
map.cx(viewboxW / 2);
map.cy(viewboxH / 2);
}).scale(0.70);

那么如何获取当前的中心点呢?

最佳答案

使用下面的代码找到初始的 centerX 和 centerY 位置(缩放之前)。

var viewPort = document.getElementsByClassName("viewport")[0];
var bbox = viewPort.getBBox();
var initX = (bbox.x+bbox.width)/2,
initY = (bbox.y+bbox.height)/2;

您可以使用下面编写的代码在缩放后计算中心点。

var pt =  draw.node.createSVGPoint();
pt.x = initX;
pt.y = initY;
pt = pt.matrixTransform(viewPort.getCTM());

pt.x 将是 centerX 位置,pt.y 将是 centerY 位置。

希望这有帮助。

关于javascript - 使用 svg.js 和 svg-pan-zoom 如何获取当前 "viewport"中心点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490814/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com