我有一个我似乎无法解决的问题。我也找不到任何先前帖子中已经给出的解决方案。
我正在一个公制坐标系中工作,其中所有变量都是负值(例如:)origin = -2,-2; north = -2,-1; east = -1,-2; south = -2, -3, west = -3,-2
。这是一个南半球坐标系。假设第一个点是原点,我需要计算通过两点的线的方位角和斜率。
我已经能够使用 Python 编写一个脚本来计算每对点的方向(0-360 度),但是根据我正在比较我的结果的参考数据集,许多值是相反的 180 度,它已经计算了这些值。
如果我使用 ATAN2 然后将弧度转换为度数,这条线穿过二维图形上的哪个象限是否重要?我是否需要根据象限添加或减去 0、90、180、270 或 360?我认为这是我的问题,但我不确定。
最后,以上假设我正在分别计算二维空间中的方向和斜率。有没有更简洁的方法来计算 3D 空间中的这些变量?
我附上了我当前的代码块,其中包括计算每个象限的方位角。我非常感谢你们能提供的任何帮助。
dn = north_2 - north_1
de = east_2 - east_1
x = x + 1
if dn<0 and de<=0:
q = "q3"
theta = math.degrees(math.atan2(dn,de))
orientation = 90- theta
if dn>=0 and de <0:
q = "q4"
theta = math.degrees(math.atan2(dn,de))
orientation = 270-theta
if dn>0 and de>=0:
q = "q1"
theta = math.degrees(math.atan2(dn,de))
orientation = 270-theta
if dn<=0 and de>0:
q = "q2"
theta = math.degrees(math.atan2(dn,de))
orientation = 90-theta