- ベストアンサー
Matrix.b Matrix.c によるMCの傾斜
- ActionScriptでMovieClipに、フォトショップ等にあるような傾斜変形を行いたい
- 具体的な角度を指定して傾斜をつける方法が分からない
- Matrix.bとMatrix.cプロパティを利用して角度を制御する式が分からない
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>> 90度程度の効果が得られる事が分かりました。 ここの意味がよくわからないのですが。 「x (y)軸方向にスライドする距離を制御する」 のですよ。 いくらずらしても90度にはなりません。 無限という数があるのなら,その数を入れれば90度になるのかもしれませんが, そんな値はないので,90度にはなりません。 90度はできませんが,89.9999999…度までなら,tan(タンジェント)でできると思います。 > x=80; > myMatrix.b = x/180*Math.PI; ↓ ↓ ↓ x = 80; myMatrix.b = Math.tan(degrees*Math.PI/180); □□□□□□□□□ □■□□□□□□□ □■■□□□□□□ □■■■□□□□□ □■■■■□□□□ □■■■■■□□□ □■■■■■■□□ □■■■■■■■□ □■■■■■■■□ □■■■■■■■□ ┐ □□■■■■■■□ │ □□□■■■■■□ │ □□□□■■■■□ tan(45°) □□□□□■■■□ │ □□□□□□■■□ │ □□□□ 45°■□ ┘ ■■■■■■■■■ これを90度までどんどん変形していく様子を想像するとわかると思いますが, 90度はありえませんね。図形として成り立たなくなります。 90度はできませんが, 長方形のムービークリップ(インスタンス名=myMC)を作成して, その変形を,度で指定するスクリプトを書いておきます。 myMC が存在するフレームに書くスクリプト例です。 ------------------------------------------- import flash.geom.Transform; import flash.geom.Matrix; // myMCにTransform オブジェクトを作成し割り当てる var trans:Transform = new Transform(myMC); // Matrixオブジェクトの作成 var myMatrix:Matrix = new Matrix(); // x,y座標の固定 myMatrix.tx = myMC._x; myMatrix.ty = myMC._y; // 変形を30°にする(※可変) var degrees:Number = 30; myMatrix.b = Math.tan(degrees*Math.PI/180); // Transform オブジェクトにMatrixの値を適用 trans.matrix = myMatrix; ------------------------------------------- これくらいまでのことはわかりますが, 私は数学は苦手ですので,あまり深く質問されてもよくわかりません。 とりあえず,上のスクリプトで,90度と270度(-90度)の倍数以外の角度なら,指定できます。 90度を指定しても,スクリプトが暴走したりエラーになることはありませんが, 長方形ムービークリップ myMC が見えなくなります。
お礼
「距離」とは、そういう意味だったのですね。 tanには気付きませんでした。 上手くいきました。ご教授を有り難う御座いました。 >> 90度程度の効果が得られる事が分かりました。 ごめんなさい、89.9999・・・のことです。 完全に90度にはならないことは分かります。 不適切な表現を詫び致します。