トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

三角測量

  三角測量

ある基線の両端にある既知の点から測定したい点への角度をそれぞれ測定することによって、その点の位置を決定する

コード

#!/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) )