2016-09-21 11 views

答えて

0

パスを編集する必要があります。いいえ、配列はありません。パス文字列だけです。もちろん、パス文字列を生成する配列内のノードのトラックを保持するより高いレベルのコードを書くことができます。そして、あなたはどうなる

function Polygon (nodes) { 
    if (nodes instanceof Array) this.nodes = nodes; 
    else this.nodes = []; 
} 

Polygon.prototype.draw = function() { 
    var path = "M" + this.nodes[0][0] + "," + this.nodes[0][1]; 
    for (var i=1; i<this.nodes.length; i++) { 
     path += "L" + this.nodes[i][0] + "," + this.nodes[i][1]; 
    } 
    path += "Z"; 
    return path; 
} 

単純な実装は次のようなものになるだろう。もちろん、

var p = new Polygon([[100,100],[100,200],[200,200],[200,100]]); 

var pp = paper.path(p.draw()); 

// Modify node: 
p.nodes[2] = [300,300]; 
pp.attr('path',p.draw()); 

// Add node: 
p.nodes.push([250,150]); 
pp.attr('path',p.draw()); 

あなたが実装するAPIと、より創造することができます。たとえば、polygon.draw()はリンクされたラファエロ要素を自動的に更新できます。上のコードは基本的な考え方の単なる例です。

関連する問題