如何在应用变换

时间:2015-09-23 04:15:12

标签: javascript svg drawing snap.svg translate-animation

我有这个svg块,这个组可以拖动,所以每次拖动时变换矩阵都会改变

<g id="product_1240" transform="matrix(-0.5032,0.8642,-0.8642,-0.5032,80.0928,78.4287)" class="elements">
<path id="p1" d="m -25, -15 l 50,0 l 0,30 l -50,0 z" fill="#fc7f4c" stroke="#FC7F4C" vector-effect="non-scaling-stroke" style="opacity: 0.3;" class="elements" opacity="0.3"></path>
<path id="p2" d="m -20, -10 l 40,0 l 0,20 l -40,0 z" fill="#e5e5e5" stroke="#cccccc" vector-effect="non-scaling-stroke"></path>
</g>

我可以像这样获得元素getBBox()的{​​{1}}

product_1240

这工作正常,但如果我这样做

console.log($('#product_1240')[0].getBBox());

我得到了结果但是它的静态通过拖动,因为没有变换到console.log($('#p1')[0].getBBox()); 但只变换到它的父p1。我的问题是无论如何得到g应用其父getBBox()

的转换矩阵后的元素p1

1 个答案:

答案 0 :(得分:2)

getTransformToElement()可能就是您追求的目标。

More usage of getTransformToElement

完成转换后,您可以将其应用于每个bbox点以获取转换后的bbox。