【发布时间】:2020-07-07 16:34:15
【问题描述】:
在下面的例子中,我有 3 个形状的交点(在本例中,我使用的是圆形,但这 3 个形状可以是任何形状)金色的交点是使用剪辑路径剪辑的结果。
我想使用交叉点作为符号,为此我需要知道交叉点的边界框,即红色描边矩形。
如果我使用 intersection.getBBox(),我会在剪切之前获取边界框。
如何获取路口的边界框?
console.log(intersection.getBBox())
svg{border:solid}
.circles{fill:none;stroke:black}
<svg id="svg" viewBox="-150 -150 300 300" width="300">
<defs>
<circle id="c1" cx="0" cy="-50" r="80"></circle>
<circle id="c2" cx="43.3" cy="25" r="80"></circle>
<circle id="c3" cx="-43.3" cy="25" r="80"></circle>
<clipPath id="clipC2"><use xlink:href="#c2"/></clipPath>
<clipPath id="clipC3"><use xlink:href="#c3"/></clipPath>
</defs>
<g class="circles">
<use xlink:href="#c1"/>
<use xlink:href="#c2"/>
<use xlink:href="#c3"/>
</g>
<g id="intersection">
<g clip-path="url(#clipC3)">
<use fill="gold" xlink:href="#c1" clip-path="url(#clipC2)"/>
</g>
</g>
<rect x="-38" y="-42" width="75" height="74" stroke="red" fill="none"/>
</svg>
【问题讨论】:
标签: javascript svg