SVG交叉元素与变换

时间:2016-12-16 12:51:12

标签: svg intersection

Intersection library from Kevin Lindsey可以轻松计算几种svg元素(路径,矩形,线......)之间的交叉点。

但是,它似乎没有考虑通过transform="translate(x,y) rotate(r)"应用于任何对象的转换。

<svg>
    <polygon id="machine" transform="translate(40,25) rotate(45)"... />
    <path id="outer" ... />
</svg>

<script>
var machine = document.getElementById("machine")
var outer = document.getElementById("outer")

var m = new Polygon(machine)
var o = new Path(outer)

Intersection.intersectPathShape(o, m) // incorrect
</script>

有没有办法在计算交叉点时考虑应用于任何元素的转换?

1 个答案:

答案 0 :(得分:1)

您可以尝试将值更改为“屏幕”值,然后提取变换。以下是多边形和路径(弧除外)的一些示例: 关于路径的注意事项:Chrome最近弃用了pathSegList,现在需要使用polyfill, https://github.com/progers/pathseg

<br>