Reinit_creative log Reinit_creative log rss

Reinit_creative log

about ActionScript3 and Design memo.

3D勉強中1

2010.03.02

Math

3Dを基本から勉強中なのですが、 アフィン変換が分からなくていきなりつまづきました。

で、アフィン変換を調べていくと、完全に忘却している三角関数の定理がたくさん出てきて、 これは、本格的に復習しようと思いました。

まず躓いたアフィン変換

以下の例は、角度rad回転させた時の座標を求めています。

※x0,y0は、変換前の座標
※x1,y1は、変換後の座標

x1=x0*Math.cos(rad)-y0*Math.sin(rad)
y1=x0*Math.cos(rad)+y0*Math.sin(rad)

まず、この公式が全く理解できず、ググりました。

アフィン変換を解く

アフィン変換

上図は、点Pから点Qへ回転したときの座標を求めます。
まず点Qの座標を(x1,y1)とすると、座標Qは、以下の式で求まります。

x1=Math.cos(a+b);
y1=Math.sin(a+b);
加法定理より
x1=Math.cos(a)*Math.cos(b)-Math.sin(a)*Math.sin(b);
y1=Math.sin(a)*Math.cos(b)+Math.sin(b)*Math.cos(a);
・・・式1

開店前の座標Qを(x0,y0)とすると、座標Pは、以下の式で求まります。

x0=Math.cos(b);
y0=Math.sin(b);
・・・式2

式2を式1に当てはめます。

すると以下の式になり、アフィン変換の公式になります。
x1=x0*Math.cos(a)-y0*Math.sin(a)
y1=x0*Math.sin(a)+y0*Math.cos(a)
次回は、実際のスクリプトに入っていきます。

update 2010.03.05...

[関連記事]

My Icon

Flash+デザインを仕事としています。
info[at]reinit.info
>>detail

レコメンド

ActionScript3アニメーション

ActionScriptアニメーション

アニメーションに関する基礎が得られる本。
コレを読んで、ASが楽しくなった。