プロが教えるわが家の防犯対策術!

知識がないので、上手な質問ができませんが、お許し下さい。
2次元平面上で、あらかじめ正確な位置がわかっている灯台が3つ(A,B,C)あります。
自分の位置と方向が分からない船(P)が、灯台の地図と見える方向だけをたよりに、自分の方位と位置を正確に計算する方法を教えて下さい。
(三角測量ってこういうことをやるんですよね?
このあたりから自信なしです)
できれば、C言語かVBプログラムソースがダウンロードできるサイトを教えていただけると、うれしいです。

(プログラムソースって、計算手順をあらわすのに、フローチャートや、文章より適していると思うので・・・
私にとっては、英語、日本語より共通言語だし・・・
・・あ、話しそれました。ごめんなさい)

よろしくお願いします

A 回答 (2件)

 補足要求#1の条件が成り立っているものとして、先に行きましょう。



 角度は例えば反時計回りで、符号付きで表すことにしましょう。Cを基準にして、AとBの見える方角を測り、それぞれα,βとします。

 さて、海図を広げましょう。AとCの角度がα。ある点Xa:Xaから見てAとCの角度がαになるような点、を適当に見つけます。A,Xa,Cを通る円Raを描きます。するとこの円Ra上で、円弧A~Xa~C上ののどの点から見ても、AとCの角度はαである。(円周角の定理。幾何で習ったでしょう?)
 同様に、BとCの角度がβ。ある点Xb:Xbから見てBとCの角度がβになるような点、を適当に見つけます。B,Xb,Cを通る円Rbを描きます。するとこの円Rb上で、円弧B~Xb~C上のどの点から見ても、BとCの角度はβである。
 従って、円弧A~Xa~Cと円弧B~Xb~Cの交点が現在地点ですね。

*ある点Xa:Xaから見てAとCの角度がαになるような点、を適当に見つけるには?
AとCの距離を|AC|とします。AとCを結ぶ線分Lの垂直二等分線Hを描き、LとHの交点をMとします。H上で(|AC|/2)(cot(α/2))の所に印をつけて、それをXaにしては如何でしょうか。(いや、Cを通りLと直交する直線Vを描いて、V上でCから|AC|cotαの所に印をつけるのでも良いんですよ。)

*3点を通る円Raを描くには?
XaとCを結ぶ線分の垂直二等分線と直線Hとの交点が円Raの中心です。

という作図をプログラムに置き換えるだけのことですが...
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

実際にプログラムで確認出来てから、お礼しようとしてました。
時間がかかりそうなので、お知らせしようと思います

実験環境そろえつつ、継続中です。

お礼日時:2001/04/19 13:08

平面上の話だとすれば、現実の航法ではなく、別の問題を言い換えていらっしゃるのだろうと思われますが、


数学の問題としては、ご質問の条件だけでは、いつでも必ず自分の位置が決まるとは限りません。以下の条件が必要だと思いますよ。

●3つの灯台が一つの直線上に並んでいないこと。
●3つの灯台の光を見て、どれがどの灯台なのか見分けが付くこと。(色が違うとか、光る周期が違うとか)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!