首页 > 解决方案 > 计算线穿过两点的角度 - 如何正确缩放?

问题描述

我有两个点,想以度数计算与这些点交叉的线的角度。

我这样计算角度:

import numpy as np

p1 = [0, 0.004583285714285714]
p2 = [1, 0.004588714285714285]

x1 = p1[0]
y1 = p1[1]

x2 = p2[0]
y2 = p2[1]

angle = np.rad2deg(np.arctan2(y1 - y2, x2 - x1))

print(angle)

正如预期的那样,角度是一个非常小的负数(相对于 X 平面的小向下倾斜):

-0.00031103423163937605

如果我绘制这个,你会明白我的意思:

plt.ylim([0,1])  # making y axis range the same as X (a full unit)
plt.plot([x1, x2], [y1, y2])

在此处输入图像描述

很明显,这条线的角度是一个非常小的数字,因为 Y 值非常小。

我知道这个图中最低的 y 数是0.00458,最高的是0.00459

我无法想出正确缩放此角度的方法,以便获得此角度:

在此处输入图像描述

接近-35度左右(视觉上)。

如果图表绘制的 Y 轴仅介于上述最小值和最大值之间,我如何获得一个人会看到的角度?

当然,所有图都只是为了说明 - 我试图只计算给定两个点的原始角度数以及 Y 轴的最小值和最大值。

标签: pythonnumpy

解决方案


解决了它,结果非常简单,我不确定为什么我遇到了麻烦(或者为什么人们似乎不理解这个问题 ¯\ (ツ) /¯ )。

我正在寻找的角度可以通过

yRange = yMaxValue - yMininumValue
scaledY1 = y1 / yRange
scaledY2 = y2 / yRange

angle = np.rad2deg(np.arctan2(scaledY1 - scaledY2, x2 - x1))

对于问题中发布的值,结果是-28.495638618242538


推荐阅读