Как получить getBBox пути после применения преобразования

У меня есть этот блок 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() элемента product_1240 вот так

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

это работает нормально, но если я

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

я получаю результат, но он статичен во время перетаскивания, потому что нет преобразования в p1, а только в его родителя g. Мой вопрос в том, есть ли в любом случае получить getBBox() элемента p1 после применения матрицы преобразования его родителя g


person coolguy    schedule 23.09.2015    source источник


Ответы (1)


getTransformToElement() может быть тем, что вам нужно.

Дополнительное использование getTransformToElement

Когда у вас есть преобразование, вы можете применить его к каждой из точек bbox, чтобы получить преобразованный bbox.

person Paul LeBeau    schedule 23.09.2015
comment
Устарело в соответствии с stackoverflow.com/questions/5891552/< /а> - person handle; 19.12.2019