0

私はRaphael.jsを使用して画像を回転および拡大縮小しています。そして、デフォルトでは、回転とスケーリングのピボットポイントは、画像の中心と同じであることがわかっています(誤解しないでください) 。ピボットポイントの位置を変更して、それに関して将来のすべての変換が行われるようにするにはどうすればよいですか?

言い換えると、回転/スケーリングの中心を変更して、などのメソッド呼び出しがimage.transform("s2,5r20")デフォルトのポイントではなく、そのポイントに関連して機能するようにするにはどうすればよいですか?

4

2 に答える 2

2

実際、あなたが説明している動作のピボット ポイントを手動で指定する必要があることが常にわかっています。

elementelを指定して、オプションの 3 番目と 4 番目のパラメーターを scale ディレクティブに使用して、スケーリングするポイントを指定します。

var bbox = el.getBBox();
el.transform( [ "S", "2.0", "2.0", bbox.x + bbox.width / 2, bbox.y + bbox.height / 2 ] );

同様に、rotate ディレクティブの場合、同じ目的でオプションの 2 番目と 3 番目のパラメーターを使用します。

var bbox = el.getBBox();
el.transform( [ "R", 45, bbox.x + bbox.width / 2, bbox.y + bbox.height / 2 ] );

明らかに、この機能をユーティリティ関数または Raphael 拡張にラップすることが望ましいです。しかし、これにより、あなたが求めている目標を達成することができます。

于 2012-10-23T18:30:59.377 に答える
0

ドキュメントにはがあります:

ar el = paper.rect(10, 20, 300, 200);
// translate 100, 100, rotate 45°, translate -100, 0
el.transform("t100,100r45t-100,0");
于 2012-10-23T17:34:25.477 に答える