寻找 SVG 图形的中心

5

我正在使用svgjs创建我的形状。如何找到SVG形状的中心点并在那里添加一个元素?在我的情况下是一个红点。我在文档中找不到任何有助于解决这种情况的方法或信息。

Translated:
我正在使用svgjs创建我的形状。如何找到SVG形状的中心点并在那里添加一个元素?在我的情况下是一个红点。我在文档中找不到任何有助于解决这种情况的方法或信息。
1个回答

9
你可以使用方法getBBox或者getBoundingClientRect。这两种方法都会给你一个具有属性x, y, width, height的对象,你可以用它来计算你的中心点。
由于你标记了你的问题为svg.js,我还将为你提供一个使用svg.js的解决方案。
// Vanilla
node = document.getElementById('myEl').getBBox()

// with svg.js
SVG.adopt(document.getElementById('myEl')).bbox()

第二种解决方案会给你返回一个对象,其中的 cxcy 已经为您计算好了。
此方法可以在文档中找到。

非常感谢您的回答,最后一个问题,获取坐标后,如何将元素设置在这些位置上? - Pedro
我会使用 center 函数将元素的中心设置为形状的中心。例如: circleEl.center(cx, cy)。这些都写在文档中。请仔细阅读文档! - Fuzzyma
非常感谢您的帮助,但我注意到一个问题,当我调用SVG.adopt(this.svgElement).bbox()时,我发现它只给了我2个坐标。在我console.log(this.svgElement)之后,我发现有两个svg,在每个主题中都有两个形状,矩形和圆形,但我需要将元素定位在svg内部形状的中心,我该怎么做? - Pedro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接