4

パーセンテージに基づいて配置された 2 つの円の間にパスを描画しようとしています。このように配置されているのは、紙を拡大縮小して位置を維持したいからです。

これは円でうまく機能しますが、次のようなパスを描画しようとすると:

paper.path("M55% 70%L25% 20%")

私が得るのは次のとおりです。

Error: Problem parsing d="M,0,0"

どうすればこれを手に入れることができますか?

また、手動で計算せずに要素のパーセンテージの位置を取得する方法はありますか?

ありがとう!

アップデート:

私は自分の問題を解決することになりましたが、かなり手動で回避策があります。

var canvasX = $('#worldmap svg').width() / 100;
var canvasY = $('#worldmap svg').height() / 100;
mapCanvas.path("M" + Math.floor(parseFloat(from.attr("cx")) * canvasX) + " "
        + Math.floor(parseFloat(from.attr("cy")) * canvasY) + "L"
        + Math.floor(parseFloat(to.attr("cx")) * canvasX) + " "
        + Math.floor(parseFloat(to.attr("cy")) * canvasY));

言うまでもなく、これは素晴らしいことではありません。

4

1 に答える 1

1

SVG PathData 仕様には、この種の構文が許可されていることは示されていません。実際、円の中心のようなものが許可されていることに少し驚いています...しかし、私はあなたが正しいと思います.
ただし、スケールを実行すると、この jsfiddle でわかるように、場所は固定されたままになりません: http://jsfiddle.net/PUg8r/

于 2012-04-30T18:21:20.940 に答える