平日:窓を閉め忘れた ― 2008年05月16日 06時47分18秒
今朝の室温は20.1度と比較的に暖かい朝となったのだけど、昨夜が25.4度だったせいか空気が冷たく感じられる。
さすがに 5度も気温差があるとギャップによる体感温度の誤差は発生してもおかしくないか。
そんな感じで考察をしていたのだけど、カーテンを開けた瞬間に窓が開いているという事実を知ってしまった。
どうやら換気のために開けていた窓を閉め忘れたらしく、室温のギャップは窓が開いていたためかも知れない。
朝っぱらからネタを一つ手に入れた今日という朝、起きがけの気分は「もう 1時間ほど寝たい」である。
さすがに土日で寝溜めした分の睡眠は使いきってしまったようだ。
さすがに 5度も気温差があるとギャップによる体感温度の誤差は発生してもおかしくないか。
そんな感じで考察をしていたのだけど、カーテンを開けた瞬間に窓が開いているという事実を知ってしまった。
どうやら換気のために開けていた窓を閉め忘れたらしく、室温のギャップは窓が開いていたためかも知れない。
朝っぱらからネタを一つ手に入れた今日という朝、起きがけの気分は「もう 1時間ほど寝たい」である。
さすがに土日で寝溜めした分の睡眠は使いきってしまったようだ。
長すぎて 嬉しさよりも 安堵する ― 2008年05月16日 22時47分00秒
ここ数日に悩み続けていた球体同士の衝突に関する物理演算がようやっと解決した。
そのため、今日は久しぶりに気持ちよく家路に付くことができて、心の底からホッとしている。
やはり来週の心配をせずに帰れる金曜日こそが「花の金曜日」と呼ぶに相応しいと実感している今日この頃だ。
さて、今回の課題で最大の難関となってしまった球体同士の衝突判定で苦戦してしまった理由というか言い訳をさせてもらおう。
兎にも角にも物理の知識を中途半端に持っていて、微妙に考慮すべき法則が不足している事に気が付けなかった事があるのが大きい。
今にして思えば、物理の教科書を大学に入るまで手にした事が無かったのだから知識だけで解こうとしたのが間違えだった。
もちろん意地でも自力で解いてやると躍起になっていたわけではない。
途中で似たような事をやっているサンプルを見つけて、参考にしたりコピーして試してみたりもした。
実のところ、このサンプルの選択を失敗してしまった事も作業を遅らせる原因の一つとなっている。
拾ってきたサンプルはどれも弾性衝突を採用した物理演算を行っているのだけど、俺がやろうとしているビリヤードの玉は非弾性衝突で計算する必要がある。
弾性衝突とは文字通り弾く力を持つ物体同士の衝突、例えば風船同士をぶつけた時のような運動を計算する。
ビリヤードの玉は木製であり、弾性を持たないため非弾性衝突として演算しなければならない。
言われてみれば当たり前なのだけど、弾性という言葉をすっかり忘れていたから、衝突後に停止するはずの手玉が反対方向へ弾かれてしまう原因が分からず大混乱してしまった。
結論を言えば、弾性をゼロとする完全非弾性で計算して解決したけど、そこへ至るまでの道程は険しかった。
座標系が正しくないとか、不慣れな言語だから知らない仕様が絡んでいるのかも知れないと散々に悩み通した。
そんな混沌とした時間から抜け出すキッカケを作ってくれたのは「球体同士の衝突について」と題された PDFファイルだった。
物体の衝突シミュレーターを作った方のサイトで見つけた資料なのだけど、それを試しに読んでみて全てを理解した。
事始めに使用する物理法則の列挙があって、その中に弾性計数がしっかりと明記されていた。
一通り流し読みして、上に戻った瞬間は正に目から鱗と言った状況だった。
そこで理解してから 2時間ほど数式を弄くりまわして、ようやっと完成となった。
テストをしてみてそれっぽく動いているのを確認した時は嬉しいよりもアンドの方が強かった。
それこそ脱力してしまって、次の校庭には行る元気が無くなっていたくらいだ。
とりあえず、ノイローゼになる一歩手前で悩んでいた問題が解決して本当に良かった。
今はただこの一言に尽きる感じだ。
そのため、今日は久しぶりに気持ちよく家路に付くことができて、心の底からホッとしている。
やはり来週の心配をせずに帰れる金曜日こそが「花の金曜日」と呼ぶに相応しいと実感している今日この頃だ。
さて、今回の課題で最大の難関となってしまった球体同士の衝突判定で苦戦してしまった理由というか言い訳をさせてもらおう。
兎にも角にも物理の知識を中途半端に持っていて、微妙に考慮すべき法則が不足している事に気が付けなかった事があるのが大きい。
今にして思えば、物理の教科書を大学に入るまで手にした事が無かったのだから知識だけで解こうとしたのが間違えだった。
もちろん意地でも自力で解いてやると躍起になっていたわけではない。
途中で似たような事をやっているサンプルを見つけて、参考にしたりコピーして試してみたりもした。
実のところ、このサンプルの選択を失敗してしまった事も作業を遅らせる原因の一つとなっている。
拾ってきたサンプルはどれも弾性衝突を採用した物理演算を行っているのだけど、俺がやろうとしているビリヤードの玉は非弾性衝突で計算する必要がある。
弾性衝突とは文字通り弾く力を持つ物体同士の衝突、例えば風船同士をぶつけた時のような運動を計算する。
ビリヤードの玉は木製であり、弾性を持たないため非弾性衝突として演算しなければならない。
言われてみれば当たり前なのだけど、弾性という言葉をすっかり忘れていたから、衝突後に停止するはずの手玉が反対方向へ弾かれてしまう原因が分からず大混乱してしまった。
結論を言えば、弾性をゼロとする完全非弾性で計算して解決したけど、そこへ至るまでの道程は険しかった。
座標系が正しくないとか、不慣れな言語だから知らない仕様が絡んでいるのかも知れないと散々に悩み通した。
そんな混沌とした時間から抜け出すキッカケを作ってくれたのは「球体同士の衝突について」と題された PDFファイルだった。
物体の衝突シミュレーターを作った方のサイトで見つけた資料なのだけど、それを試しに読んでみて全てを理解した。
事始めに使用する物理法則の列挙があって、その中に弾性計数がしっかりと明記されていた。
一通り流し読みして、上に戻った瞬間は正に目から鱗と言った状況だった。
そこで理解してから 2時間ほど数式を弄くりまわして、ようやっと完成となった。
テストをしてみてそれっぽく動いているのを確認した時は嬉しいよりもアンドの方が強かった。
それこそ脱力してしまって、次の校庭には行る元気が無くなっていたくらいだ。
とりあえず、ノイローゼになる一歩手前で悩んでいた問題が解決して本当に良かった。
今はただこの一言に尽きる感じだ。
【練習4】ビリヤード6 ― 2008年05月16日 23時00分06秒
ようやっと運動量保存の法則に従った衝突判定が完成しました。
今回はテスト用のサンプルなので暴走することは在りません。
6-1:演算処理の負荷を見るためのサンプル
http://www.ne.jp/asahi/crimson/luwan/20080516/billiards6-1.html
6-2:しっかりと衝突判定を確認するためのサンプル
http://www.ne.jp/asahi/crimson/luwan/20080516/billiards6-2.html
今回はテスト用のサンプルなので暴走することは在りません。
6-1:演算処理の負荷を見るためのサンプル
http://www.ne.jp/asahi/crimson/luwan/20080516/billiards6-1.html
6-2:しっかりと衝突判定を確認するためのサンプル
http://www.ne.jp/asahi/crimson/luwan/20080516/billiards6-2.html
最近のコメント