三角測量
三角測量
ある基線の両端にある既知の点から測定したい点への角度をそれぞれ測定することによって、その点の位置を決定する
コード
#!/bin/env python3.9 import math #### def dms2deg( d, m, s): retuen d + m/60+ s/3600 #### def sankaku1( ang1=60 , ang2=60, baseline=1.0 ): rad1 = ang1 * math.pi / 180.0 rad2 = ang2 * math.pi / 180.0 dist = baseline / (1.0 / math.tan(rad1) + (1.0 / math.tan(rad2) )) return dist #### def sankaku2( ang1=60 , ang2=60, baseline=1.0 ): rad1 = ang1 * math.pi / 180.0 rad2 = ang2 * math.pi / 180.0 dist = baseline * math.sin(rad1)*math.sin(rad2) / math.sin(rad1+rad2) return dist if __name__ == '__main__': print ( sankaku1(ang1=90.0,ang2=60,baseline=2.0) ) print ( sankaku2(ang1=90.0,ang2=60,baseline=2.0) ) print("=="*10 ) print ( sankaku1(ang1=60.0,ang2=90,baseline=2.0) ) print ( sankaku2(ang1=60.0,ang2=90,baseline=2.0) ) print("=="*20 ) print ( sankaku1(ang1=90.0,ang2=45.0, baseline=2.0) ) print ( sankaku2(ang1=90.0,ang2=45.0, baseline=2.0) ) print("=="*20 ) print ( sankaku1(ang1=90.0,ang2=30,baseline=2.0) ) print ( sankaku2(ang1=90.0,ang2=30,baseline=2.0) ) print("=="*10 ) print ( sankaku1(ang1=30.0,ang2=90,baseline=2.0) ) print ( sankaku2(ang1=30.0,ang2=90,baseline=2.0) )