物理学

【物理】と【プログラミング】の関係〜力学のはじめのいっぽ

子供向けプログラミング教室『CoderDojo熊本』で以前こんな質問がありました。

ニンジャ
ジャンプをさせてみたいんです。

参考記事

マリオだってロックマンだってマイクラだって、

ぴょんぴょんジャンプができるのが当たり前で、

現実世界でもジャンプしようと思えば健康体であれば簡単にできると思うんですが、

いざジャンプができるようにプログラミングをつくってみようとすると、これがなかなか難しいんですよね。

なんせ、重力を再現しないといけないので。

普段生活している中ではそうそう意識することはないんですが、

ジャンプしたら着地するし、

スカイダイビングしようもんならぴゅーっと落ちてしまうし。

アオキ
そんなの当たり前でしょ?

って思っちゃうんですが、

当たり前すぎて意識すらしていない事を、数式にして解読しようとした人たちがいたんですね。

誤解を恐れずに言えば、

自然界の法則を数式で再現しちゃおうというのが『物理学』であり『数学』なのかなと。

Sponsored link

物理とプログラミングの関係 高性能化でより自然に

パソコンがどんどん高性能になって、ものすごい量の計算をあっさりできるようになるにつれ、

人がつくりだしたもの・・例えばゲームが、
どんどん自然界の動き方に近づいてくるようになりました。

例えばレースゲームで有名な『グランツーリスモ』なら、

  • アクセルを踏んだ時の挙動・振動
  • 少しずつ加速していく体感
  • 急にハンドルを動かした時の重力
  • 急ブレーキ踏んでもすぐには止まれないし
  • ぶつかったときに弾き飛ばされたり

といった動きがどんどんリアルになってきました。

サッカーゲームで有名な『ウイイレ』も、

  • パスを出した時のボールの動き方
  • スルーパスを蹴った時のボールの動き方
  • ドライブシュート、カーブ

などなど。

最近は本田圭佑やクリスチャーノ・ロナウドが得意とする無回転シュートの再現なんかもできるようになっています。

アオキ
ファミコン時代と比べたらありえない進化ですな・・

これらを実現するには『物理学』や『数学』といった理論 + 高機能な計算機が必要で、

最近ではスマホでもハイスペックな処理計算ができるようになり、

さらに『5G』で高速化が進むと。

とはいえ原則はやっぱり『物理学』『数学』なんですよね。

今回は『物理学』の基本とも言える『力学』についてざっくりまとめることにしました。

小学校でもならう物理の一歩 『おはじき』

もっともわかりやすい物理といったら、個人的には『おはじき』なんじゃないかなと思います。

  • は・・速さ
  • じ・・時間
  • き・・距離

例えば速さが1秒で10メートル進む車があったとして、5秒走ったとしたら、 

10メートル × 5秒 で 50メートル進む事になります。

距離が50メートルで、5秒かかったとしたら、

50メートル ÷ 5秒 で 1秒あたり10メートル進んだということになります。

とてもシンプルではありますが、これも立派な物理のひとつだと思います。

Sponsored link

物理・力学 速さと加速度の公式

先ほどの『おはじき』にプラスして、

『物理学』のうちの『力学』では、

  • 『質量』
  • 『加速度』
  • 『力』
  • 『力の向き』

といった内容も増えてきます。

とはいえ、自然界の当たり前な事を数式にしているので、

シンプルに考えるとわかりやすくなってきます。

アオキ
大学物理になると微分方程式+ベクトルだらけになりますが、今回は高校物理を想定しています。

基本単位
 
・距離(長さ) (m)メートル
・時間 (s) 秒 ・・英語でsecond(セコンド)
・質量 (kg)
 

アオキ
質量って何?重さ?

っと思いがちなんですが、厳密にはちょっと違って、

  • 重さ・・その物質に働く重力の大きさ
  • 質量・・物体そのものがもつ「動かしにくさ」

という区分けのようです。

アオキ
わかるようでわからんような。とりあえず重さってことでまずは理解しとこ。

物理・力学で使う公式その1 速度

$ 速度(m/s)=\displaystyle \frac{距離(m)}{時間(s)} $

→これは『おはじき』と同じですね。

物理・力学で使う公式その2 加速度

$ 加速度(m/s^2)=\displaystyle \frac{速度の変化(m/s)}{時間(s)} $

例えば自動車を動かすとして、

アクセルを踏み出した時はほとんどスピードがでなくて、
段々とスピードが早くなってきます。

1秒ごとに2メートルずつ早くなる車があったとしたら、加速度は$2(m/s^2)$となります。

アオキ
どんどん早くなっていくという感覚がわかればまずはOKかなと思います。

参考記事

ニュートンの運動の3法則 2つめ 運動方程式

例えば自転車に乗った時、
動いていない状態から、ペダルを踏んで漕ぎ出したとすると、
力を加えて加速度が増えたという事になります。

漕げば漕ぐほど(力を加えるほど)、加速度も増えてどんどん速くなると。

ブレーキをかけたとしたら、逆方向の加速度がかかってしばらくすると止まります。

なので、力と加速度は比例していると考えられます

また、

自転車のカゴが空ならすんなり漕ぎ出せますが、

例えばボーリングの球が入っていたとしたら、漕ぎだすだけでもなかなか大変になると思います。

カゴに入った荷物が重いほど加速度が出せなくなるので、

加速度は質量に反比例していると考えられます。

それらをまとめたものが『運動方程式』と呼ばれる式です。

運動方程式
$ 力(kg・m/s^2)=\displaystyle 質量(kg) × 加速度(m/s^2) $

  • 力をFで (英語でForce)
  • 質量をmで (英語のmass)
  • 加速度をaで (英語でacceleration)
    書き直すとこうなります。

$ F = \displaystyle ma $

また、質量1kgの物体を$1m/s^2 $ だけ加速するのに必要な力を 1N(ニュートン)と呼びます。

$ N (ニュートン) = (kg・m/s^2)$

 
ニュートンの運動の3法則
 
1. 慣性の法則・・止まっている物体はずっと止まって、動いている物体は(摩擦などがなければ)いつまでも同じ速度で動いている。
2. 運動方程式・・力の方向に加速度が発生する。加速度は力に比例し、物体の質量に反比例する。
3. 作用反作用の法則・・力を他に及ぼした物体は、同じ大きさの反対向きの力を及ぼされる。
 

Sponsored link

物理で重力の再現・・重力加速度

日常生活ではジャンプしたら着地するし、

スカイダイビングしようもんならぴゅーっと落ちてしまうというのは、

もちろん地球に重力があるからなんですが、

物理学的にいうと『重力加速度』がかかっていることになります。

『重力加速度』は、$ 9.8(m/s^2) $ という事になっています。

  • 地球の半径・・約$ 6.38×10^6(m) $
  • 地球の質量・・約$ 5.98×10^{24}(kg) $

から計算できますが今回ははしょります。

アオキ
$ 9.8(m/s^2) $ ではあるんですが、実際にゲームなどで使おうとするとスピードが速すぎたりするので、
うまいこと調整が必要になったりします。

重力加速度もこちらの記事で扱っています。

物理のフシギ 鉄球と羽根は同じタイミングで落下する?!

てっきり勘違いしてたんですが、

物理の教員免許を持っている友達から指摘がありました。

物理な友達
鉄球と木球を同じ高さから同時に落としました。速く落ちるのはどっち?
アオキ
んー、、質量が重い方?
物理な友達
違う!どっちも同じ!
アオキ
マジっすか・・
アオキ
んー、、空気の抵抗?
物理な友達
そう!落下速度は質量に依存しないっス
アオキ
おぅ、、物理ムズカシイヨ・・

さっそくググってみると、ありました。

空気がなければ本当に羽は鉄球と同じ速度で落下するのか世界最大の真空チャンバーで実験

アオキ
マジっスか・・すごい・・

物理な友達によると、空気抵抗は速度に比例するそうで、

これまたしっかり時間つくって勉強してみたいと思います。

物理とプログラミングの関係性 理論を知って、理論で遊んで

地球に住んでいる限り、

重力(重力加速度:$ 9.8(m/s^2) $)があるのは絶対なのですが、

プログラミングに関して言うと、その重力加速度を調整することができたりします。

例えば重量加速度を$ 1(m/s^2) $ くらいに調整したりすると、

ゆっくりと落ちていく動きになるし、

重力加速度をプラスにしたりマイナスにしたりすると、

ふわふわと宙に浮かぶような動きをつくることもできます。

  • 質量
  • 速さ
  • 加速度
  • 距離 (プログラムの場合は位置)

などのパラメータを組み合わせたり調整したりすることで、

自然界のような動かし方をすることもできれば、
水中や宇宙空間にいるような感覚を表現することもできたりします。

まとめ 物理・力学のはじめのいっぽ

いくつかの公式を並べてきまして、

おいおいプログラミングでも動かしてみようかと思うのですが、

大事なことは、公式を丸暗記することじゃなくて、

現実世界の動きを理解しようとしたのが『物理学』という事だろうと思います。

最初はとっつきにくいかもですが、次第に慣れていく感じもしているので、

淡々と記事を書きつつ理解度を深めていけたらいいなと思っております。

アオキ
せっかくなら公式丸暗記じゃなくて『物理学』で遊びたいもんですね。

参考図書

created by Rinker
¥2,160 (2019/08/20 15:28:02時点 Amazon調べ-詳細)

created by Rinker
¥1,598 (2019/08/20 18:35:09時点 Amazon調べ-詳細)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


関連記事

  1. 数学

    【ベクトル解析 発散(div)】わかりやすくまとめてみた

    『3Dプログラミング』に取り組むうちに目にするようになってきた『ベクト…

  2. 数学

    【図解】波の用語や動きをプログラミングも交えてまとめてみる【数学&物理】

    先日とあるサイトを見ていたらとてもかっこいい映像を見つけました。…

  3. 数学

    【ベクトル解析 勾配(grad)】わかりやすくまとめてみた

    『3Dプログラム』に取り組むうちに目にするようになってきた『ベクトル解…

  4. CG関連

    プログラミングで【加速度】をわかりやすくするために実際に動かしてみる(5)【P5.js】

    遊ぶようなプログラミングでおなじみの『クリエイティブコーディング』。…

  5. CG関連

    【ベクトル】をわかりやすくするコツ〜『ベクトル』はただの数値の組み合わせです(4)【P5.js】

    遊ぶようにプログラミングができて、デザインやアートをつくれる『クリエ…

Sponsored link

最近の記事

  1. 学び・教育

    『ニュータイプの時代』〜リベラルアーツとテクノロジーの融合〜
  2. バックエンド

    【Laravel(PHP)】初心者向け アプリのつくり方 をリリースしました【t…
  3. バックエンド

    【厳選8冊】ホームページを作れるようになるためのおすすめ本【初心者向け】
  4. 数学

    【微分】とは わかりやすくまとめてみた〜めっちゃすごいわり算【初心者向け】
  5. 数学

    【三角関数】の使い方〜わかりやすさ重視でまとめてみた【動画あり】
PAGE TOP
//記事ページのみに構造化データを出力 //サムネイルを取得 //ここから構造化データの記述