忍者ブログ

Light of the Wave

主に、LightWave3Dに関する事を書き記します。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2013/02/28 【寄り道:三角関数「sin」「cos」】

d1858aa9.jpeg
前回の続きです。
三角関数の「sin」と「cos」について学んでいきます。


ぶっちゃけ三角関数って「何?」って感じですよね。
簡単に言うと、三角形の辺の長さを求める為の定義です。

 

【図1:これです】
87e55e70.jpeg

             (1):斜辺
         (θ:シータ):角度
   (sinθ:サインシータ):高さ
 (cosθ:コサインシータ):底辺


う~ん、これだけ見てもさっぱりですよね。
何でこれが反復運動を生み出しているのか全く繋がりが見えてきません。

とりあえず、焦る気持ちを落ち着かせてゆっくりお茶でも飲みながらやっていきましょう。
まずは「何でこんな定義があるんだ?」という所から考えていきます。

 

最初にθと直角三角形に注目してみます。
θを30度にしたとして、これで直角三角形を書いてみようとすると・・・

当たり前ですけど、三角形の大小はあっても形はどれも同じものになりますね。
θが45度でも60度でも直角三角形であれば同じ三角形が作る事が出来ます。

これで三角形の大きさは違っていても「辺の長さの比」が同じだということが分かりましたね。
具体的にこれを使ってどのように辺の長さを求めていくのかを学んでいきましょう。



θが30度の場合どのようになるか?
早速θの値が分かったので図1のθ部分に「30°」と置き換えてみます。
 

【図2:θを30°にした場合。】
98fed766.jpeg

既にカッコ部分に値が書いてありますが、これがsinとcosの値です。
もっとわかり易い値で見ると以下のようになります。
・・・ってこれ、数学の先生が絶対に覚えておけよと言っていたやつじゃないか。
 

【図3:図2を分かり易く】
007dc28b.jpeg

これは一種の約束事というか三角形を使って数値を計算させる問題は三角形の形が決まっています。
それ以外の形だと沢山の数値で人の力では計算出来ないようです。
(そういうことが出来るのは電卓や3DCGソフトなど自動で計算してくれるものくらいですね。)


今度はθが45度の直角三角形の場合はどうでしょう?
これも決められた三角形の形として以下のように定義されます。
 

【図4:θを45°にした場合。】
6ee0a484.jpeg

sinとcosが同じ値になりました。
ちょうど角度的には中間に当たる部分ですね。


さらにθが60度の直角三角形の場合はどうでしょう?


【図5:θを60°にした場合。】
d3b35cc4.jpeg

これは図2と同じ形ですね。
θに当たる位置が変わっただけのように見えます。

 


と、ここまでやってきて三角関数がどういうものなのか少し分かってきたでしょうか?

え?
何でこれが反復運動を生み出す基になっているかがまだ謎ですって?
確かにそうですよね。
やってることはただの三角形の辺を求めるだけですから・・・。

しかし・・・しかしです。
θの角度が0°→ 30°→ 45°→ 60°→ 90°と変化していく時のsinとcosの辺の値を比較してみてください。
 

θ 30° 45° 60° 90°
sin 0 1/2 1/√2 √3/2 1
cos 1 √3/2 1/√2 1/2 0


sinとcosの値はθが45°以外は対称の数値になっています。
ここから何かしらの周期的なものがあってθの位置で回転するたびに対称、又は等しいsinとcosの値が感じ取れますね。

ん?
θの位置で回転?

ちょっと待って下さいよ。
つまり、θは3DCG空間で言うところの原点(中心点)ではないでしょうか?


【そう考えるとsinとcosの辺がどこなのか分かり易い】
8e27d420.jpeg

θの度数が大きくなって回転されている辺は「1」になりますよね。
(この辺が「tan」に当たる部分になります。)

「1」の辺の長さ(幅)に合わせたコンパスを作ったとして、θをの位置を中心点に円を書いたとします。
で、「1」の辺を棒に見立ててクルクル回してみましょう。
 

【見える・・・私にもsinとcosの反復する動きが見えるぞぉ!】
sin_cos_mot_test_0001.gif

青とピンクのラインの長さが値を意味しています。
この図からはcosは「1」から始まり、sinは「0」から反復が始まるということが分かりますね。



ちなみに、下のGIFは数学関数の「sin」を付けただけで制御しているボーンです。
 

【ボーンがちょっと揺れてる。】
sin_test_yure_0001.gif

ボーンの反復範囲は-1°~1°で、右のNullがずっと回転している限りボーンはユラユラと反復し続けています。
「cos」も反復範囲は同じですが最初から1°と角度が付いてしまいます。
どちらかと言うとスケール向きですね。


とりあえずこんな感じで・・・。
これで「Oscillator」が何故あのような動きをしてくれているのか理解できましたでしょうか?
自分なりに3DCG的にも数学的にも分かり易く書いたつもりです。
タンジェントもこれで分かったので次に学ぶ時は特に苦悩しなさそうですね。
(そうだよ、これOscillatorを理解する為の勉強だったんだよ・・・w)

 

寄り道はこのくらいにして再びユーティリティ関数に戻ります。
次は「Projectile Motion」・・・まだどういうものなのか分かりませんが、触っていけばきっと分かるはずです。
めげずに進めていきましょう。




-追記-
Oscillator・・・sinやcosを利用することでどういったことが出来るか?
それは様々なモノの動きを観察していれば、きっと多くのことに利用できることが分かってくるはずです。
例として、去年の夏にテストがてらに作った金魚のGIFを参考に貼ります。
これはOscillatorと遅延の効果を与えて下のGIFの動きを実現しています。
 

【結局これ作って使わず終いだったな。】
8b2b2b7e.gif

このような複雑そうな動きもモーションキーを作成せずに簡単に作れてしまいます。
本当に考え方次第ですね・・・。

拍手[3回]

PR

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

プロフィール

HN:
d_suzukky
性別:
男性
自己紹介:
こんにちは、d_suzukkyです。

田舎暮らしでのほほんと3DCGの勉強をしています。

ブログ内検索

Booklog

最新コメント

[05/22 topchecker]
[05/22 topchecker]
[05/22 topchecker]
[05/22 topchecker]
[05/22 Hyksof]

最新トラックバック

バーコード

フリーエリア

Copyright ©  -- Light of the Wave --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]