角度計算なら逆三角関数
海岸から山脈を見上げたとき、山の頂って見えるんでしょうか。見上げるとしたら、その角度はどれくらいでしょうか。この疑問に答えるには逆三角関数が必要です。山の高さと距離が分かれば見上げる角度がピタッと分かります。
三角関数の復習
数学が大好きだった人を除けば、圧倒的に多くの人は三角関数が苦手です。サイン(sin)、コサイン(cos)、タンジェント(tan)。確かに語呂は良いのですが、いざ問題に取り掛かると苦労することが多かったのではないでしょうか。
しかし、三角関数が役に立つのは間違いありません。簡単に復習すると、直角三角形のいずれか1つの角を挟む2つの辺の割合がsin, cos, tanになります。これは決めごとなので丸暗記する以外にありません。
・
・・
・ ・
・ ・
c ・ ・ a
・ _・ a b a
・)θ| ・ sin = --- cos = --- tan = ---
A ・・・・・・・・ C c c b
b
直角三角形の角度を求めるには
この3つの三角関数でほとんど十分なのですが、中には直角三角形の特定の角度(θ)を計算したい場合などsin, cos, tanだけでは簡単に計算できないものもあります。例えば、以下の図の角度(θ)を知りたいときなどは、実測するより計算したほうが正確です。
・
・ ・
c ・ ・
・ ・ a (高さ) <-- 計りやすい
・ __・
・ )θ<-- 小さい | ・
・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
A b C
(底辺) <-- 計りやすい
アークタンジェントで三角形の角度を求める
それでは角度(θ)を求めてみましょう。上記の三角形のようにaとbが既知のとき、θを求めるには、以下の公式を使えば簡単に計算できます。
θ= tan --- ・・・・・・・・・・・・・・・・・ (1)
b
-1の肩文字が付いているtanのことをアークタンジェント(タンジェントの逆関数)と言って、タンジェントとは次の関係があります。
tan (tan(θ)) = θ
ところで、逆三角関数の利用頻度は三角関数以上に高くないので、rpnには標準装備されていません。そこで、アークタンジェントを計算するrpnプログラムのatanを用意します。
逆三角形プログラムのダウンロード
- 逆三角関数プログラムのZIPファイルをダウンロードしてください。
- ダウンロードしたZIPファイルをダブルクリックするとacos.obj, asin.obj, atan.objが表示されます。
- acos.obj, asin.obj, atan.objを格納したいフォルダにドラッグすると以下のダイアログが出てきます。
- パスワードを入力してください。一致していれば、acos.obj, asin.obj, atan.objが解凍されます。
| パスワードの入力 |
+-------------------------------------------------+
| +-----+ |
| ファイル'atan.obj'はパスワードで保護されて | OK | |
| います。 パスワードを入力してください。 +-----+ |
| |
| +----------------------+ +-----+ |
| パスワード(P): | | |キャンセル| |
| +----------------------+ +-----+ |
+-------------------------------------------------+
※パスワードは講座サポートのpasteプログラムのダウンロードと同じです。
ここでは、c:\rpnディレクトリにobjファイルが保存してあるものとして説明します。DOSプロンプトを起動して、c:\rpnまで移動してください。
逆三角関数プログラムの使い方
使い方は次のように簡単です。引数に比率(高さ/底辺)を指定します。
0.785398
このアークタンジェントを使えば、角度(θ)を計算してくれるはずです。例題として玄関前の段差をバリアフリーにするケースを取り上げてみます。
玄関前のスロープの角度
玄関前に高さを15cm、長さ3mのスロープを作るとします。角度はどれくらいになるのでしょうか。上記(1)の公式どおりにアークタンジェントのrpnプログラムに高さ÷底辺の比率を指定します。
0.0499584
角度が出ましたが、単位がラジアンです。°(度)に変換するには、以下の式を使います。
ラジアンから°(度)への変換
ラジアン * 180-------------- = °(度)
3.14159
rpn式だと次のようになります。
2.86241
約3°弱の角度になることが分かりますね。なお、これら一連の計算ですが、一気に一行で計算した方がすっきりします。
2.86241
車椅子等を考慮した公共施設のスロープでは勾配が5%(高さ÷長さ)なので、三角形の底辺を3mとすると1/20で15cmの高さまでなら条件を満たします。
日本アルプスの山を見上げる角度
天候に恵まれた場合、人はどこまで見渡せるのでしょう。海に浮かぶ船はどれくらいの距離までなら視界に入るのでしょうか。かなり先まで見えるように思いますが、意外に距離は短く4.5km程度です。より遠くまで見たいなら高いところに登るしかありません。
では、逆に海岸線から3000m級の山を見上げるとき、その角度はどれくらいになるでしょう。海岸から山頂までの平面距離が50kmだとすると次のように簡単に計算できます。
3.43364
見上げる人の身長は考慮していないので、海岸の砂浜に這いつくばった状態で、山頂を眺める感じなのですが、意外に角度はないですね。角度が小さすぎて僅かな障害物で山頂が見えなくなります。
なお、世界でも海上から3000m級の山頂が見えるポイントは極僅かです。
エベレストを見上げる角度
一番近い海岸線からエベレストの山頂が見えるとしたら、どれくらいの角度なのでしょうか。
0.724179
計算すると僅かに1°未満です。何しろ海岸線から700kmもありますから、山頂は見えません。
障害物がない状態で、エベレストの山頂を地上から見ることのできる限界水平距離は約340km。地球の直径を12767kmとすると「rpn 8.848 12756 8.848 + * r」で距離が算出できます。ちなみに大気の屈折を考えるときは最後に1.06倍するようです。
オリンポス山を見上げる角度
では、太陽系の最高峰である火星のオリンポス山を見上げた場合はどうなるでしょう。オリンポス山は標高27000mもあるとても大きな山です。スケールの大きさは裾野にも現れており、その直径はなんと550km。日本列島の1/2くらいありますね。
それでは、オリンポス山の裾野から山頂を眺めてみましょう。
5.60744
角度は小さく、どうも山の斜面は思ったよりなだらかなようです。体感するのは難しいですが、日本アルプスやエベレストと比較しても、その角度は段違いなのでしょう。
オリンポス山は富士山の7倍強の高さです。天気が良いと東京からでも富士山が見えますが、その7倍の高さを想像してみるとオリンポス山の巨大さが分かります。なお、火星上(直径6794km)でオリンポス山頂を地上から見ることのできる限界水平距離は、障害物がない状態で430kmです(大気がないので補正は不要)。
富士山を海岸線から見上げると、その角度は8.6°です(3776m、25kmで計算)。角度からして世界的にかなり珍しいビューポイントかもしれません。
映画館の最前列でスクリーンを見上げる角度
街中に戻って、映画館で最前列に座ったときはどうでしょう。巨大スクリーンの場合、高さが10mのものもあるそうです。仮に最前列からスクリーンまでの距離が5mとすると次の計算になります。
63.4351
確実に首が痛くなりそうです。スクリーンの半分の高さを眺めたとしても45°なので苦しさは変わらないようです。
スクリーンまでの最適な距離はスクリーンの高さの3倍とのことなので、仮にスクリーンの高さが10mだとするとスクリーンから30m離れた距離が視聴に最適となります。ちなみに計算すると角度は18.435°。従って、角度が20°弱(スクリーンの真ん中くらいを見るとすれば約10°)なら少なくとも上映時間中は首が痛くならないようです。
東京スカイツリーを見上げる角度
最後に日本が誇る自立式電波塔のスカイツリー(634m)を見上げるとどうなるでしょう。真下から50mずれた地点から上を眺めるとして、その角度はいくらになるでしょうか。
85.4905
なんと85°以上です。ほとんど真上を向いている感じですね。
ちなみに自立式鉄塔としては未だに東京タワーの333mは世界一です。スカイツリーと同じ条件で見上げると角度は81°です。4°しか違いがなく、意外と感じ方は変わらないようです。
残りの逆三角関数も同梱
最後に三角関数(sinとcos)の逆関数も紹介しておきます。sinとcosの逆関数で、それぞれアークサイン、アークコサインと言います。プログラム名はasin、acosです。atan.objと共にarc.zipに格納されています。使い方は以下のようにatanと同じです。
1
>rpn 1 c | rpn -c acos
1
これで三角関数と一緒に逆三角関数もrpnで利用できることになります。
rpnプログラムを実行するには、rpn試用版かrpn標準版が必要です(バージョンの違いはこちら)。
xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。