0

それぞれ異なるレートでスケーリングされたいくつかの形状のセットがあります。

セットがを使用して別のポイントに変換されたとき

set.transform("tp1,p2")

形状は通常のサイズに再スケーリングされます。元のサイズのさまざまな比率で拡大縮小された図形ごとに、set.transformに拡大縮小オプションを指定することはできません。

transform()中にセット内の各アイテムのスケーリングを保持するにはどうすればよいですか?

コードでの私の質問:

http://jsfiddle.net/XHr4H/

4

1 に答える 1

1

これに対処するRaphaelの不完全な方法は、変換ディレクティブを変換シーケンスの前に追加する(「directive ...」を使用)か、変換シーケンスに追加する(「...directive」を使用する)ことです。あなたの場合、あなたが求めている効果を達成するための最も簡単な方法は、setTimeout関数で必要な相対変換を付加することです。

var paper = Raphael("paper", 200, 200);

var s = paper.set(),
    r = paper.rect(0,0,30,30).attr({"fill":"green"}).transform("t27,30s0.2"),
    r2  = paper.rect(40,0,30,30).attr({"fill":"red"}).transform("t27,30s0.4");
s.push(r,r2);
setTimeout(function(){
    s.transform("t100,150...");  // here 'tis
}, 2000);

transform( "t100,150 ...")は、基本的に、セット内の各要素の変換文字列の先頭に目的の翻訳を挿入します。したがって、r's変換は累積的に「t127,180s0.2」と評価され、r2'sは「t127,180s0.4」になります。

于 2012-10-24T16:47:17.263 に答える