python方位角计算

转自:

https://www.jb51.net/article/178694.htm

使用 atan2来计算方位角,范围为-pi,pi

atan2(y,x)所表达的意思是坐标原点为起点,指向(x,y)的射线在坐标平面上与x轴正方向之间的角的角度。

结果为正表示从 X 轴逆时针旋转的角度,结果为负表示从 X 轴顺时针旋转的角度。

atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2);

那么这两个点形成的斜率的角度计算方法分别是:


float angle = atan2( y2-y1, x2-x1 );

 

 

math中关于三角函数常用的操作:

1

2

3

4

5

6

import math

math.acos(x)  # 返回 x 的反余弦 弧度值。 

math.asin(x)  # 返回 x 的反正弦 弧度值。 

math.degrees(x)  # 将 弧度 转换为 角度, 如 degrees(math.pi/2) , 返回90.0 

math.radians(x)  # 将 角度 转换为 弧度

注意负数角度的转换。

 

 

 

 

计算两个向量的角度

#计算两个向量之间的角度,v1,v2分别是两个向量的起始点坐标和终点坐标,坐标顺序是先第几列(y)后第几行(x)
def angleBetween(v1, v2):
    dx1 = v1[2] - v1[0]
    dy1 = v1[3] - v1[1]
    dx2 = v2[2] - v2[0]
    dy2 = v2[3] - v2[1]
    angle1 = math.atan2(dy1, dx1)
    angle1 = int(angle1 * 180/math.pi)
    # print(angle1)
    angle2 = math.atan2(dy2, dx2)
    angle2 = int(angle2 * 180/math.pi)
    # print(angle2)
    if angle1*angle2 >= 0:
        included_angle = abs(angle1-angle2)
    else:
        included_angle = abs(angle1) + abs(angle2)
        if included_angle > 180:
            included_angle = 360 - included_angle
    return included_angle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值