0

20度ごとに18軸が外側に向かう中心点があります。あるパスに沿った任意のポイントから次のパスまで、どこまでもパスを描くにはどうすればよいですか。たとえば、0度の中心から 20px 離れて開始し、20度で 40px 離れて描画し、40度で 100px 離れて描画します。

私はいくつかの道をたどり始めました(申し訳ありません)が、ドキュメントで私がやりたいことをするものを見つけることができませんでした(少なくともあからさまではありません)。おそらく getPointAtLength が答えになると思いましたが、そこに到達できませんでした。

4

1 に答える 1

2

http://raphaeljs.com/reference.html#Paper.pathで説明されているように、パスを定義する文字列を作成する必要があります。これには、いくつかの三角法が必要になります。(cx, cy) に中心点があり、半径の配列があると仮定します。

var commands = 'M';
var radii = [20, 40, 100, ...];
var cx = 200;
var cy = 200;

for (var i=0; i<18; i++) {
    var theta = Math.PI * i/9;
    var x = cx + radii[i] * Math.cos(theta);
    var y = cy + radii[i] * Math.sin(theta);
    commands += x + ' ' + y + ' ';
}

var p = paper.path(commands);
于 2013-06-20T16:39:26.317 に答える