« 万有引力 universal gravitation 値変換2
max msp jitter
| トップページ | 今日の畑
秋野菜の準備 »

2010.08.13

回転力と慣性モーメント
max msp jitter そして Java

万有引力の演算をMAXにて行っていて問題になるのは、その反力だった。
MAXで作り上げた空間に引力のアルゴリズムを働かせると、
やがて空間は静となる。
力が一つしか無いから。


今回はとても困難だった回転力について現段階のメモを記録する。
もしかしたら、まだ間違っているかもしれない。

***

引力を働かせたとたん、MAXの画面はただ、真っ黒だった。
現実の世界を考えて、引力の反対の力が物体を運動させると気づいた。

<僕は、歩くために引力に刃向かって腕を振り、足を上げる。>

宇宙空間に働く力を考えた時、惑星には引力と遠心力が影響している。
引力の反力は遠心力、遠心力は回転から生まれる。

ということで、物体を回転させればMAXの画面で物体を自由に動かすことが出来る。
そう考えた。
回転運動の公式は、2つの物体の距離を測る三平方の定理でなれたsin、cosで求められそう。

まずは、2Dでprocessingを使ってテストしてみることにした。
(processingはこうした動きのテストに最適な環境。)
processing test code

Google先生によると以下のような式が出てきた。

X = cos(角速度) * 2点間の距離 + 回転軸のX座標
Y = sin(角速度) * 2点間の距離 + 回転軸のY座標

なるほど、実際に動かしてみると綺麗に回る。
しかし、この式は回転軸の座標は示しているが、回転する物体の方の座標を示すことが出来ない。
回転する物体が軸の座標(x0,y0)に対し、毎回(x2点間の距離,y0)であるとは限らない。 それと、回転力の減衰が起こらない。
このままでは永遠に減衰しない回転力から遠心力が生まれ続け、物体はやがて遙か彼方に消えて見えなくなる。
これらの問題を解決するのが、三角関数の加法定理と慣性モーメントだった。

三角関数の加法定理は以下
X' = x * cosθ - y * sinθ
Y' = x * sinθ + y * cosθ

慣性モーメントは以下
I = 質量 * 距離の二乗

現時点で理解度が浅く間違っている部分がありそうだが、三角関数の加法定理で求まった結果に対し、慣性モーメントを影響させてやれば、力の均等がとれるはず。(ある程度2点間の距離が離れれば回転力も遠心力も減衰する。)
よって、万有引力、回転力、遠心力のバランスがとれるはず。

以下はテストで回転力のみを与えた複数の物体。
とっても有機的に動き出すことが確認できる。
プログラミングっておもしろい。





坂田アキラの三角関数・指数・対数が面白いほどわかる本 坂田アキラの三角関数・指数・対数が面白いほどわかる本
(数学が面白いほどわかるシリーズ)


価格 : ¥1,365 (税込み)

「三角関数、指数・対数関数」の基本から応用、重要公式から(秘)テクニックまで、幅広く網羅。重要な概念を、ゼロからわかるように説明。

|

« 万有引力 universal gravitation 値変換2
max msp jitter
| トップページ | 今日の畑
秋野菜の準備 »

max msp jitter」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/198455/49139207

この記事へのトラックバック一覧です: 回転力と慣性モーメント
max msp jitter そして Java
:

« 万有引力 universal gravitation 値変換2
max msp jitter
| トップページ | 今日の畑
秋野菜の準備 »