三角形で一辺とその両端の角度が求まると、3番目の点が求まる。
基線ABと角A, B, Cから辺BC,
ACの長さa, bは、正弦定理
a/sinA = b/sinB = c/sinC
から求まる(左図)。
精密に測定された基線から三角形の網を次々と広げて測量する。
2. 複数のフラグに対する視覚情報から自分(player)の位置の計算:
2.1 2つのフラグをFi, Fj とする(右図)。
フラグの位置は既知で、各々を (xi, yi), (xj, yj) とする。
また、see情報の (Distance, Direction) を (ri, di), (rj, dj) をする。
2.2 フラグ Fi, Fj 間の距離 r0
は(xi, yi), (xj, yj) から、
playerからのフラグの視野角 Cは di −dj から求まる。
2.3 正弦定理より、角度 B を求める。
sin B = ri * sin C/r0, sin A = rj * sin C/r0
arcsinは -Pi/2 から Pi/2 で定義される、従って 鈍角の時を考え3つの角度の和が
180度にならない時、
ri > rj の時、 B = arcsin( ri * sin C/r0),
rj > ri の時、 B = Pi/2 - arcsin( ri * sin C/r0).
2.4 Fj を中心に、ベクトルFjFi
を B だけ回転し、長さを rj / r0 倍する。
player の位置 = Fj + FjFi * exp( i*B ) * rj / r0.