python求向量与x轴的夹角_如何计算直线与水平轴的夹角?

这篇博客介绍了如何使用Python计算两点间向量与x轴的夹角,包括atan2函数的使用、向量规范化以及不同象限的判断。提供了一个getAngleBetweenPoints函数的实现,并通过测试案例验证其准确性。
摘要由CSDN通过智能技术生成

首先找出起点和终点之间的区别(这里,这更多的是一条有向线段,而不是“直线”,因为直线无限延伸,而不是从某个特定点开始)。deltaY = P2_y - P1_y

deltaX = P2_x - P1_x

然后计算角度(从P1的正X轴到P1的正Y轴)。angleInDegrees = arctan(deltaY / deltaX) * 180 / PI

但是arctan可能并不理想,因为这样划分差异将消除区分角度所在象限所需的区别(见下文)。如果您的语言包含一个atan2函数,请使用以下内容:angleInDegrees = atan2(deltaY, deltaX) * 180 / PI

编辑(2017年2月22日):然而,一般来说,仅仅为了获得cos和sin的正确角度而调用atan2(deltaY,deltaX)可能是不雅的。在这些情况下,您通常可以执行以下操作:将(deltaX, deltaY)视为向量。

将该向量规格化为单位向量。为此,将deltaX和deltaY除以向量的长度(sqrt(deltaX*deltaX+deltaY*deltaY)),除非长度为0。

之后,deltaX将是向量和水平轴之间的夹角的余弦(在P1处从正X轴到正Y轴的方向)。

现在deltaY就是这个角度的正弦。

如果向量的长度为0,它与水平轴之间就没有夹角(因此它就没有有意义的正弦和余弦)。

编辑(2017年2月28日):即使没有规范化(deltaX, deltaY):符号deltaX将告诉您步骤3中描述的余弦是正的还是负的。

符号deltaY将告诉您步骤4中描述的正弦是正的还是负的。

符号deltaX和deltaY将告诉您相对于P1处

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值