_三角関数を勉強しています。
- 2009-04-08(水)
- ActionScript,
- Flash

ただいま、三角関数を勉強しています。
というのも、Papervision3DやFLARToolKitを使いと思ったからです。
先日、FLARToolKitを使ったAR系Flashの作り方:第1回 FLARToolKitことはじめをやったのですが、3Dの話になると分からないところが増えてきます。
ということで、基礎から勉強です。
というのも、Papervision3DやFLARToolKitを使いと思ったからです。
先日、FLARToolKitを使ったAR系Flashの作り方:第1回 FLARToolKitことはじめをやったのですが、3Dの話になると分からないところが増えてきます。
ということで、基礎から勉強です。
一般的に、円の動きを使うときには、三角関数のsinとcosを使います。
例えば、中心の位置(cx, cy)と半径hと角度aが分かっているときの位置(x, y)は,
以下の数式で表すことができます。
xの値を求めるときはcosを使って、
yの値を求めるときはsinを使えば良いのかな?
あるオブジェクトが円にj個均等に配置されていて、i番目のオブジェクトの角度を求めたいときは、
しかし、数学の世界では、ラジアンを使うのが標準のようで、プログラミングにおける数学や角度に関するメソッドなどでも、ラジアンを採用しています。
ActionScriptでもラジアンが採用されています。ただし、Flashでは注意が必要です。オブジェクトの回転角度であるrotationプロパティには、『度数法』が採用されています。
たとえば、座標(px, py)を原点を中心にt度回転させた座標(qx, qy)は、以下の式で求められます。
rotationプロパティは、簡単にオブジェクトを回転できますが、この場合だとオブジェクト自身も角度によって傾いてしまいます。また、回転の半径を変更する事ができません。
ですが、一次変換は数学的に回転させるので、上記のような制約はほとんどありません。
たとえば、マウスを位置を中心に写真を回転させることもできます。
例えば、中心の位置(cx, cy)と半径hと角度aが分かっているときの位置(x, y)は,
以下の数式で表すことができます。

x = cx + h × cos(a) y = cy + h × sin(a)ということは、
xの値を求めるときはcosを使って、
yの値を求めるときはsinを使えば良いのかな?
あるオブジェクトが円にj個均等に配置されていて、i番目のオブジェクトの角度を求めたいときは、
i / j =* Math.PI *2//円の一周は2πラジアン(Math.PI * 2)です。
ラジアンとは普段の生活では、1周は360度で扱う『度数法』を使っています。
ラジアン(radian, 記号:rad)は、国際単位系(SI)における角度(平面角)の単位である。弧度(こど)とも言い、平面角の大きさをラジアンで測ることを弧度法と呼ぶ。あるいはラジアンで測った平面角を弧度法の角という呼び方をすることもある。ラジアンは、立体角のステラジアンに対応するものである。
ラジアンは、円周上でその円の半径と同じ長さの弧を切り取る2本の半径が成す角の値と定義される。度数法で測った360度は、弧度法においては2πラジアンになる。よって、1ラジアンは(360/2π) = 約57.29578度となる。
ラジアン - Wikipedia
しかし、数学の世界では、ラジアンを使うのが標準のようで、プログラミングにおける数学や角度に関するメソッドなどでも、ラジアンを採用しています。
ActionScriptでもラジアンが採用されています。ただし、Flashでは注意が必要です。オブジェクトの回転角度であるrotationプロパティには、『度数法』が採用されています。
一次変換
一次変換とはwikipediaには、難しいことがかいてありますが、中心にある物体を動かすときに利用します。
線型写像(せんけいしゃぞう、linear map)は、ベクトル空間の代数的構造を保つような写像、すなわち体上の加群としての準同型写像のことである。とる値によっては線型変換(せんけいへんかん、linear transformation、一次変換)とか一次形式(いちじけいしき、linear form)とも呼ばれる。
線型写像 - Wikipedia
たとえば、座標(px, py)を原点を中心にt度回転させた座標(qx, qy)は、以下の式で求められます。
qx = px × cos(t) - py × sin(t) qy = px × sin(t) + py × cos(t)また、ここで覚えておかないといけない事は、rotationプロパティとの違いです。
rotationプロパティは、簡単にオブジェクトを回転できますが、この場合だとオブジェクト自身も角度によって傾いてしまいます。また、回転の半径を変更する事ができません。
ですが、一次変換は数学的に回転させるので、上記のような制約はほとんどありません。
たとえば、マウスを位置を中心に写真を回転させることもできます。
このエントリーをTwitterでつぶやく (投稿画面に飛びます)
- Newer: _IE6の対応はどうしてますか
- Older: _Flash(AS3)のデバックツール





