代码之家  ›  专栏  ›  技术社区  ›  Shahriar

向SVG多边形点添加控制柄

  •  0
  • Shahriar  · 技术社区  · 4 年前

    我的主页上有两个按钮,一个用于开始绘制新形状,另一个用于“完成”。这是我的密码:

    const gardenMap = document.getElementById("garden-map");
    
    let pointsArray = [];
    let isCreatingField = false;
    let fields = [] //to store coordinates
    
    gardenMap.addEventListener('click', function(evt){
        var e = evt.target;
        var dim = e.getBoundingClientRect();
        var x = evt.clientX - dim.left;
        var y = evt.clientY - dim.top;
        if (isCreatingField) {
            pointsArray.push(x +','+ y);
        }
    })
    
    function startCreatingField() { //Start button
        isCreatingField = true;    
    }
    
    function finishCreatingField() { //Done button
        isCreatingField = false;  
        var field = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
        var pointsString = pointsArray.join(' ');
        field.setAttribute("points", pointsString);
        field.setAttribute("fill", "lime");
        gardenMap.appendChild(field);  
        fields.push(pointsArray);
        pointsArray = [];
        console.log(fields);
    }
    
    0 回复  |  直到 4 年前