●青ボールを好きな位置にドラッグしてみてください。それに合わせて角度、ラジアンの数値が変化します。ステージの中心(300,200)を中心として計算しています。■解説サイン・コサインと聞くと、タンジェント!と反射的に言葉はでてきますが、意味や使い方は全然覚えていないという私みたいな人向けにフラッシュで使える三角関数をまとめてみました。できれば使いたくない三角関数なんですが、三角関数を使うといろいろおもしろそうなフラッシュを作れそうな気がします。いう時にサイン、コサインを使えば便利かというと、物体を円運動させる場合や、ななめのベクトルをxyの垂直な2方向に分解するときに威力を発揮します。その他にも諸々使い方はあるのでしょうが、簡単に思い浮かぶ円運動を今回は試してみます。例として上図(初期値)のように半径(r)200の円周上にそって青いボールを回転させる場合を考えたいと思います。使って簡単に求められますが、例えばこの半径200の円周上を時計回りに10度回転させて角度20°に動かそうとした場合、青いボールのx座標、y座標はどうなっているでしょうか?ここで、確か中学か高校の時の数学の教科書に載っていたような気がする・・・三角関数の定義を使います。sinθこのようになります。あとは角度のθに角度を代入するのですが、数学の場合はθに20°を入れればOKとなります。!しかし!フラッシュの場合はsin,cosのパラメータには角度(degree)ではなくラジアン(radian)という単位を使わないといけません。(コンピュータの世界ではこのラジアンを使うのが一般的のようです。)ラジアンとは、半径1の円弧の長さをもとにした単位みたいです。半径1の円周は、直径×3.14・・・ですので、2πとなります。いう風に角度とラジアンが対応しています。ここで、上記、cosθ、sinθ、πをアクションスクリプトで表すと下記のようになります。(Math.PI/180)以上のことから、もう一度、上の式を記述すると下記のようになります。なって、上図の半径200の円周上で20°のxy位置を求めることができます。以上のことから半径と角度さえ判れば、その円周上のxy座標は上の式を使って求めることができるはずです。そこで、円運動をさせる場合、上記の式において、角度をどんどん増やしながら、繰り返しxy座標を計算させ、その位置にボールのムービークリップを移動させてやればぐるぐると円を描く運動をするようになります。詳しくは下のサンプルムービーの解説を参照してください。若干、変化を加えていますが、基本はまったく同じです。以上の基本事項がわかれば、ちょっとしたアイデアで右下のサンプルムービーみたいなものは簡単に作れるようになります。下のアクションスクリプトは右下のサンプルムービーで回っているボールに記述されたムービークリップアクションです。(load)で各初期値を指定しています。(enterFrame)では、まず、角度(degree)をラジアン(radian)に変換し、その次の行では、x座標の計算、その次の行ではy座標の計算をしています。しているのは、右のサンプルのように上下に押しつぶした回転をさせるためです。/2をしなければ真円を描くように回転します。その次の行では、xyの拡大率、透明度をy座標を基に変化させ、擬似3D的にちょっと立体感や奥行きをもたせてみました。最後に角度(degree)を5°増加させ、また同じ計算を繰り返させています。できるだけ直感的なスクリプトにしています。その為、最適化されたスクリプトとはいえませんので、悪しからずご了承ください。間違った言葉の使い方等しているかもしれませんので、参考程度にお考えください。間違いや不備のご指摘等ありましたら是非ご一報ください。