質問: 知識がないので、上手な質問ができませんが、お許し下さい。 2次元平面上で、あらかじめ正確な位置がわかっている灯台が3つ(A,B,C)あります。 自分の位置と方向が分からない船(P)が、灯台の地図と見える方向だけをたよりに、自分の方位と位置を正確に計算する方法を教えて下さい。 (三角測量ってこういうことをやるんですよね? このあたりから自信なしです) できれば、C言語かVBプログラムソースがダウンロードできるサイトを教えていただけると、うれしいです。 (プログラムソースって、計算手順をあらわすのに、フローチャートや、文章より適していると思うので・・・ 私にとっては、英語、日本語より共通言語だし・・・ ・・あ、話しそれました。ごめんなさい) よろしくお願いします
回答: 補足要求#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の中心です。 という作図をプログラムに置き換えるだけのことですが...