Globe

カナダのトロントを旅行した同僚と話をしているうちに、なんだか東京からトロントまでの距離を計算したくなりました。特に飛行機がアラスカ上空を通ったというのが気になり・・・。

以前からやってみたかった地球モデルを作りつつ、視覚化、および計算をしてみようと思いました。

地球モデル

globe_2014520_transform

世界地図、球体と変形するパーティクルで構成された地球儀モデルをつくってみました。モデルを作るに当たって、地図がどのように描かれているのかを調べることから始めました。一般的に馴染みがあるのはメルカトル図法ですが、ここではUVマップのことも考えて緯度と経度が等間隔に描かれる正距円筒図法を利用することにしました。

worldmap

正距円筒図法のテクスチャーをつくり、これを読み込んで陸地部分のピクセルをパーティクルに代えて配置しています。これを球状と平面でそれぞれ座標計算をし、切り替えれるようにしています。

距離の計算をしてみる

いろいろ出来てきたので、本題の距離を測ってみます。

東京
北緯35度41分、東経139度45分

トロント
北緯43度40分、西経79度25分

地球の直径を12730kmとします。角度から三角関数を使って座標を計算すると、

東京の位置ベクトルは

X-3945km Y3712km Z-3340km

トロントの位置ベクトルは
X845km Y4394km Z4525km

となります(下図参照)

globe_2014520_tokyo_toronto

二つのベクトルの為す角度は次の式で表せるので
cosθ = A・B / |A| |B|

アークコサインを使って計算すると、角度θは90.7度となります。
地球の円周から計算すると

地球の円周(12730km * PI) * 90.7° / 360°

となるので、おおよそ10082kmとなりました。時速900kmの飛行機なら11時間以上かかりますね。

globe_2014520_distance

東京からトロントまでを最短距離で結ぶと、あ、アラスカ上空を通っている!

なるほど、普段から平面の世界地図に慣れていると新鮮な感じがしますね。まあ、球状のモデルを平面にUV展開するのが大変なように、地球を平面で描くのも無理がある話ですよね。

というわけで今後もまたこのような思い付きが続く予定です~。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中