ここから本文です

「なぜ煙はそんな軌跡を描くのか」──プログラミングで再現してみた

WIRED.jp 9月19日(月)15時10分配信

下記リンク先の動画の注目すべき点は、煙がらせん状になっていることにある。その理由は、「風車の回転」と「横からの風」という条件が重なったことにある。

【火災が発生した風車、突然煙が「らせん」を描く動画はこちら】

▼まずはモデル化してみよう

この現象をプログラミング言語「Python」(パイソン)でモデル化してみよう。そして「VPython」を使って3次元で視覚化してみよう。

VPythonの素晴らしいところは、素早く簡単に3Dオブジェクトを生成できることだ。ここでは、風車全体をモデル化するのではなく1枚の羽根だけに注目してみる。

▼羽根の動きを考えよう

羽根の長さ(L)から、ハブ(hub)に対しての羽根の先端の位置(tip)が決まる。ハブから先端へのヴェクトルを用いて、羽根を描ける。羽根に関して考えられるプロパティは、以下の3つである。

blade.pos.:羽根の片側の点(灰色)
blade.axis.:その反対側の点(青色)
blade.radius.:円柱の半径(L)

では一体、羽根はどのように回転するのだろうか? 答えはかなりシンプルだ。羽根の向きと位置は「ハブと羽の先端の位置」に依存する。先端については、角度θからその位置が求められる。それがわかれば、ただ羽根を回せばいい。

▼コードをつくろう

さて、お次はコードだ。コードを走らせるには、〈PLAYボタン〉をクリックしてみてほしい(関連記事からご覧いただけます)。しかし、これではまだ上の動画を再現できてはいない。以下の通り、いくつかの修正が必要だ。

・横向きから見えるように、風車の向きを変える
・ハブの位置をx軸方向に動かす(ハブを動かすことで風を再現する)
・「カメラ」を動かし、動くハブの隣をキープするようにする(そうするとハブは静止し、煙が動いているように見える)

さて、これでプログラムに「風」が追加された。PLAYボタンをクリックして、動きを見てみよう。

かなりよくなったのではないだろうか? 動画で見たらせん状の煙は、「風車の回転」と「風」という2つの条件の組み合わせだということも、これで理解できるだろう。

RHETT ALLAIN

最終更新:9月19日(月)15時10分

WIRED.jp

記事提供社からのご案内(外部サイト)

『WIRED VOL. 24』

コンデナスト・ジャパン

2016年8月9日発売

630円(税込み)

TEDカンファレンスのプレゼンテーション動画

地球外生命を宿しているかもしれない1つの惑星と3つの衛星
地球外にも生命はいるのでしょうか?NASA(アメリカ航空宇宙局)の惑星科学部門の部門長であるジェームズ・グリーンと一緒に、地球外生命を宿していそうな場所を太陽系内の中で探してみましょう。 [new]