物理の過去問をUnityで解いてみた話

NITKC Prolab Advent Calender 2019 一日目の記事です

 https://adventar.org/calendars/4410

虎太郎くんはとても横着な人間なので、テスト勉強のための物理の過去問を見たときに自分で解くのが嫌になりました。なんとそのとき目の前にはUnityの開かれたパソコンが!!!!!

というわけで物理の問題をUnityで解いてみました。

物理の問題①

今回テスト範囲は運動量と状態変化なんですが、Unityで気体や液体の状態変化を実装するのは骨が折れます。一方運動量原理を確かめるぐらいならへなちょこな僕でも簡単でしょう。

以下の問題を実際に解いてみます

 

(1)質量136gの物体Aがx軸正向きに3.0m/sで進み、質量102gの物体Bがx軸負向きに7.5m/s進み、完全非弾性衝突した。衝突後の両物体の速さと向きを求めよ。(NITKC 後期中間物理 改)

 

こんな問題Unityでやるより公式当てはめたほうが早いのですが

もちろん僕にとっては難しい問題です。

 実装編

 ちょっとした注意点ですが

f:id:kotarosakata:20191130192823p:plain

RigidbodyにあるFreeze Position のx以外と、Freeze Rotationのx,y,zにチェックを入れておかないと、飛んでいったり回転したりするので正確な値が出ません。

チェックを入れておきましょう。

またUse Gravityのチェックを外しておかないと等速直線運動しないのでこれは外しておきましょう。

 

f:id:kotarosakata:20191130214204g:plain

 

できましたーー

Aは数字下、緑のキューブ

Bは数字上、赤のキューブです

というわけで答えは

A:-1.5m/s,B:-1.5m/s と分かりました

 

これで明日の物理のテストもバッチリです。

 

しかし難関の物理を1問だけ解いて投げ出し、英語の勉強を始めるのは少し良くないと思われます。次の問題を問いてみましょう。

継続して問題を解くことで、レベルアップです。

 

物理の問題②

(2) (1)の衝突が弾性衝突であったとして、両物体の速さと向きを求めよ。(NITKC 後期中間物理 改)

 

実装編

f:id:kotarosakata:20191130193112p:plain

Coliderにくっつけている(よね?)Physic Material のBouncinessの値を1にすることで弾性衝突は起こせます。 

 

f:id:kotarosakata:20191130191659g:plain

できましたーーー

先ほどと同じように、

Aは数字下、緑のキューブ

Bは数字上、赤のキューブです

というわけで答えは

A:-6m/s,B:4.5m/s と分かりました

 

感想

予想の3000倍ぐらい正確なので、Unityの物理演算って天才かな??って思いました。

正直こんな事するよりテスト勉強しなきゃいけないんですがやる気でないですね。

Unityはとてもすごいのでみんなやろうね......