pythonは方位角の例を計算します。(2点の座標から計算します。)
二点座標を知っていますが、どうやって二点方向の方位角を計算しますか?
まず、座標増分dx,dy(2つの対応する座標成分が減算され、終点の減算点の)を計算します。
dxの場合、dyの中に0がある場合、もう一つの正と負によって方位角(0、90、180、270の四つのうちの一つは座標軸図を描いて分析しますが、数学座標を描かないでください。)を決めます。
基本的な考え方:
dxの場合、dyはゼロではない。規則
a=arcatnを計算する(象限角というらしい)
dx>0 dy>0のとき方位角=a;
dx<0 dy>0の場合の方位角=180-a
dx<0 dy<0時方位角=180+a;負の範囲はa-piです
dx>0 dy<0時方位角=360-a;負の範囲は-aです
もう一つの方法があります。athan 2を使って方位角を計算します。範囲は-pi、piです。
athan 2(y,x)は、座標原点を起点とし、(x,y)を指す線の座標面とx軸の正方向との角を表す角度です。
その結果、X軸から反時計回りに回転する角度を正に表し、その結果、マイナスはX軸から時計回りに回転する角度を表します。
apanとapan 2はいずれも関数を切ることを求めるので、例えば:2つの点point(x 1,y 1)があって、point(x 2,y 2)と;
この二つの点で形成された傾斜の角度計算方法はそれぞれ以下の通りである。
float angle=apan(y 2-y 1)/(x 2-x 1)
float angle=apan 2(y 2-y 1,x 2-x 1)
apanとapan 2の違い:
1:パラメータの記入方法が違います。
2:apan 2の利点はx 2-x 1が0に等しい場合、まだ計算できますが、apan関数はプログラムエラーを引き起こすことがあります。
3:apa 2(a,b)の取値範囲は-piからpiまでの間(-piを含まない)で、apan(a/b)の取値範囲は-pi/2からpi/2の間(±pi/2を含まない)です。
なお、関数apan 2(y,x)ではパラメータの順序は逆さまであり、apan 2(y,x)で計算される値は点(x,y)の角度値に相当する。
まず、座標増分dx,dy(2つの対応する座標成分が減算され、終点の減算点の)を計算します。
dxの場合、dyの中に0がある場合、もう一つの正と負によって方位角(0、90、180、270の四つのうちの一つは座標軸図を描いて分析しますが、数学座標を描かないでください。)を決めます。
基本的な考え方:
dxの場合、dyはゼロではない。規則
a=arcatnを計算する(象限角というらしい)
dx>0 dy>0のとき方位角=a;
dx<0 dy>0の場合の方位角=180-a
dx<0 dy<0時方位角=180+a;負の範囲はa-piです
dx>0 dy<0時方位角=360-a;負の範囲は-aです
もう一つの方法があります。athan 2を使って方位角を計算します。範囲は-pi、piです。
athan 2(y,x)は、座標原点を起点とし、(x,y)を指す線の座標面とx軸の正方向との角を表す角度です。
その結果、X軸から反時計回りに回転する角度を正に表し、その結果、マイナスはX軸から時計回りに回転する角度を表します。
apanとapan 2はいずれも関数を切ることを求めるので、例えば:2つの点point(x 1,y 1)があって、point(x 2,y 2)と;
この二つの点で形成された傾斜の角度計算方法はそれぞれ以下の通りである。
float angle=apan(y 2-y 1)/(x 2-x 1)
float angle=apan 2(y 2-y 1,x 2-x 1)
apanとapan 2の違い:
1:パラメータの記入方法が違います。
2:apan 2の利点はx 2-x 1が0に等しい場合、まだ計算できますが、apan関数はプログラムエラーを引き起こすことがあります。
3:apa 2(a,b)の取値範囲は-piからpiまでの間(-piを含まない)で、apan(a/b)の取値範囲は-pi/2からpi/2の間(±pi/2を含まない)です。
なお、関数apan 2(y,x)ではパラメータの順序は逆さまであり、apan 2(y,x)で計算される値は点(x,y)の角度値に相当する。
atan2(y, x) 4 , y/x, (x, y) :
(x, y) ,atan2(y, x) 0 ~ pi/2;
(x, y) ,atan2(y, x) pi/2 ~ pi;
(x, y) ,atan2(y, x) -pi~-pi/2;
(x, y) ,atan2(y, x) -pi/2~0.
atan(y/x) y/x ( 2 ):
y/x > 0 ,atan(y/x) 0 ~ pi/2;
y/x < 0 ,atan(y/x) -pi/2~0.
方位角の計算を行う場合、コードは以下の通りです。
#
def azimuthAngle( x1, y1, x2, y2):
angle = 0.0;
dx = x2 - x1
dy = y2 - y1
if x2 == x1:
angle = math.pi / 2.0
if y2 == y1 :
angle = 0.0
elif y2 < y1 :
angle = 3.0 * math.pi / 2.0
elif x2 > x1 and y2 > y1:
angle = math.atan(dx / dy)
elif x2 > x1 and y2 < y1 :
angle = math.pi / 2 + math.atan(-dy / dx)
elif x2 < x1 and y2 < y1 :
angle = math.pi + math.atan(dx / dy)
elif x2 < x1 and y2 > y1 :
angle = 3.0 * math.pi / 2.0 + math.atan(dy / -dx)
return (angle * 180 / math.pi)
mathでは三角関数についてよく使われる操作:
import math
math.acos(x) # x 。
math.asin(x) # x 。
math.degrees(x) # , degrees(math.pi/2) , 90.0
math.radians(x) #
。
以上のpythonは方位角の実例を計算します。(2点の座標から計算します)は小編集で皆さんに共有した内容です。参考にしていただければと思います。どうぞよろしくお願いします。