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

标签 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;

    }

这是可行的,但它会为最初只有六个点的多边形返回数百个点。我怎样才能只得到必要的点(所有路径都是直线,没有曲线)

最佳答案

好的,知道了。函数 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);

        }

    }

关于javascript - 在javascript中将svg路径转换为多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15972912/

相关文章:

javascript - Angular 未定义的多个文件上传

JavaScript - 使用 for 循环项声明变量

map - 如何获取svg的坐标?

android - svg 图像文件 Android

c# - 如何找到覆盖多边形的圆的最小扇区?

android - 谷歌地图 - 缩放到多边形

r - 剪切/剪切多边形外部的所有内容或用白色填充外部

javascript - 来自 Ajax 请求的 HTML 表

javascript - 使用 jQuery 附加一个 li 使其立即消失

javascript - 使用 Jade 在 Ampersand.js 应用程序中渲染 D3.js