- くだすれPython(超初心者用) その25©2ch.net
571 :デフォルトの名無しさん[sage]:2015/02/14(土) 20:35:10.46 ID:TJAnvvXO - >>558
質問です from math import * def rad(t): return t * pi / 180.0 def irad(r): return r * 180.0 / pi def main(r, (n1, x1, y1), (n2, x2, y2)): print '%-10s: %20.15f, %20.15f' % (n1, x1, y1) print '%-10s: %20.15f, %20.15f' % (n2, x2, y2) rx1, ry1 = rad(x1), rad(y1) rx2, ry2 = rad(x2), rad(y2) rdx = rad(x2 - x1) print 'd: %20.15f' % (r * acos(sin(ry1) * sin(ry2) + cos(ry1) * cos(ry2) * cos(rdx))) print 't: %20.15f' % (90.0 - irad(atan((cos(ry1) * tan(ry2) - sin(ry1) * cos(rdx)) / sin(rdx)))) if __name__ == '__main__': omiya = ('Omiya', 139.647216796875, 35.8667954174903) tokyo = ('Tokyo', 139.735107421875, 35.7108378353009) main(6378.137, omiya, tokyo) main(6378.137, tokyo, omiya) 方向角が180度変わることを期待したのですが同じ値になってしまうのです。なぜでしょうか?どう治せば良いですか?
|