在javascript中将svg路径转换为多边形

aus*_*444 2 javascript svg polygon

我正在尝试将 svg 路径转换为 ​​javascript 中的 svg 多边形。我发现这个函数可以沿着路径爬行并提取其坐标。

    var length = path.getTotalLength();
    var p=path.getPointAtLength(0);
    var stp=p.x+","+p.y;

    for(var i=1; i<length; i++){

        p=path.getPointAtLength(i);
        stp=stp+" "+p.x+","+p.y;

    }
Run Code Online (Sandbox Code Playgroud)

这有效,但它为最初只有六个点的多边形返回数百个点。我如何只得到必要的点(所有路径都是直线,没有曲线)

aus*_*444 5

好的,明白了。函数 getPathSegAtLength() 返回实际路径段的编号。这样就很容易了。

    var len = path.getTotalLength();
    var p=path.getPointAtLength(0);
    var seg = path.getPathSegAtLength(0);
    var stp=p.x+","+p.y;

    for(var i=1; i<len; i++){

        p=path.getPointAtLength(i);

        if (path.getPathSegAtLength(i)>seg) {

        stp=stp+" "+p.x+","+p.y;
        seg = path.getPathSegAtLength(i);

        }

    }
Run Code Online (Sandbox Code Playgroud)