0

RaphaelElement を移動したいので、簡単なテスト ケースを作成します。

var paper = Raphael(0, 0, 500, 500);
var rect = paper.rect(50, 50, 100, 100);
rect.attr("fill", "blue");
rect.matrix.translate(300, 300);

しかし、四角形は移動しません。最初は、マトリックスがおそらく正しく更新されていないと思い、これを試しました:

//...
alert("" + rect.matrix.x(0,0)); // prints 0
rect.matrix.translate(300, 300);
alert("" + rect.matrix.x(0,0)); //prints 300

明らかにマトリックスは変更されますが、長方形はそれを気にしません。したがって、コードを次のように変更しました。

 rect.matrix=rect.matrix.translate(300,300);

しかし、それはプログラムをクラッシュさせるか、まったく効果がありません。RaphaelElement にマトリックスを適用するために、ある種の更新メソッドが欠落しているようです。次のようになります。

rect.updateMatrix();

ドキュメントを検索しましたが、そのような方法は見つかりませんでした。RaphaelJsでの行列の標準的な使用法は何ですか?

4

2 に答える 2

2

rect.translate(300, 300)翻訳を適用するか、代わりにrect.transform("t300,300")

また

rect.transform(['m',mat.a, mat.b, mat.c, mat.d, mat.e, mat.f]);

既存のマトリックス(マット)をrectに適用するために使用できます。

于 2013-01-03T10:51:21.907 に答える
0

マトリックスを説明する素晴らしい仕事をする Stackoverflow に関する別のリファレンスを見つけました。それは私の問題を解決しました。

StackOverflow マトリックスの説明

于 2014-06-06T16:42:32.863 に答える