Python网格引用和轨迹

Python网格引用和轨迹,python,Python,我有一个用户给我两个网格参考,我可以找到距离,但我很难找到角度(0-359)从北(北是正x) X=北 Y=向上 z=东 导入数学 #求两点之间的距离 打印(“旅行自”) x_1=浮点(输入(“x_1:”) y_1=浮点(输入(“y_1:”) z_1=浮点(输入(“z_1:”) 打印(“至”) x_2=浮点(输入(“x_2:”) y_2=浮点(输入(“y_2:”) z_2=浮点(输入(“z_2:”) #找出两个坐标之间的差。 x_dif=x_2-x_1 y_dif=y_2-y_1 z_dif=z_

我有一个用户给我两个网格参考,我可以找到距离,但我很难找到角度(0-359)从北(北是正x)

X=北 Y=向上 z=东
导入数学
#求两点之间的距离
打印(“旅行自”)
x_1=浮点(输入(“x_1:”)
y_1=浮点(输入(“y_1:”)
z_1=浮点(输入(“z_1:”)
打印(“至”)
x_2=浮点(输入(“x_2:”)
y_2=浮点(输入(“y_2:”)
z_2=浮点(输入(“z_2:”)
#找出两个坐标之间的差。
x_dif=x_2-x_1
y_dif=y_2-y_1
z_dif=z_2-z_1
打印(“位置差异:”)
打印(“X:%s”%X\u dif)
打印(“Y:%s”%Y\u dif)
打印(“Z:%s”%Z_dif)
#平方差
x_dif=x_dif*x_dif
y_dif=y_dif*y_dif
z_dif=z_dif*z_dif
#将差异加在一起
距离=x_dif+y_dif+z_dif
打印(“距离:sqr(%s)”%Distance)
#求平方根,从而求距离。
距离=距离**0.5
打印(“距离:%s”%Distance)
距离=浮动('%.1g'%距离)
打印(“距离:%s”%Distance)
#尝试从北(x+)查找方向角
方位角_1=y_dif+z_dif
方位角_1=方位角_1**0.5
y_dif=y_2-y_1
方位角_1=x_dif/方位角_1
#反余弦
方位角_1=math.acos(方位角_1)
#从弧度转换为度
方位角_1=数学度数(方位角_1)
#修正了反向:
x_dif=x_2-x_1
y_dif=y_2-y_1
z_dif=z_2-z_1
如果x_dif<0:
打印(“方位角_1:-%s”%方位角_1)
如果x_dif>0:
打印(“方位角\u 1:%s”%方位角\u 1)
elif x_dif==0:
打印(“方位角\u 1:%s”%方位角\u 1)
其他:
打印(“方位角\u 1:%s”%方位角\u 1)

在我这样做之后,我需要做相反的事情。然而,事实证明,这比我预想的要困难。

欢迎来到SO!您发布的代码太多了,请将其转换为一个文件,并关注一个特定问题。:)是否只想将笛卡尔坐标转换为极坐标?如果是这样的话,谷歌可能会给出一些提示。不幸的是,我不明白你所说的仰角是什么意思:对我(和维基百科)来说,这是一个长度,而不是一个角度。。。
import math
#Find distance between two points
print ("Travel From.")
x_1 = float(input("X_1:"))
y_1 = float(input("Y_1:"))
z_1 = float(input("Z_1:"))
print ("To")
x_2 = float(input("X_2:"))
y_2 = float(input("Y_2:"))
z_2 = float(input("Z_2:"))
#Find the Difference between the two coordinates.
x_dif = x_2 - x_1
y_dif = y_2 - y_1
z_dif = z_2 - z_1
print ("Location Difference:")
print ("X: %s" %x_dif)
print ("Y: %s" %y_dif)
print ("Z: %s" %z_dif)
#Squares the Difference
x_dif = x_dif * x_dif
y_dif = y_dif * y_dif
z_dif = z_dif * z_dif
#Adds the differences together
distance = x_dif + y_dif + z_dif
print ("Distance: sqr(%s)" %distance)
#Finds the Square root and thus the distance.
distance = distance ** 0.5
print ("Distance: %s" %distance)
distance = float('%.1g' % distance)
print ("Distance: %s" %distance)
#Tries to find the bearing from north (x+)
azimuth_1 = y_dif + z_dif
azimuth_1 = azimuth_1 ** 0.5
y_dif = y_2 - y_1
azimuth_1 =  x_dif/ azimuth_1
#Reverse Cosine
azimuth_1 = math.acos(azimuth_1)
#Converts into degrees from Radians
azimuth_1 = math.degrees(azimuth_1)
#Corrects for inverse:
x_dif = x_2 - x_1
y_dif = y_2 - y_1
z_dif = z_2 - z_1
if x_dif < 0:
    print ("azimuth_1:-%s" %azimuth_1)
elif x_dif > 0:
    print ("azimuth_1: %s" %azimuth_1)
elif x_dif == 0:
    print ("azimuth_1: %s" %azimuth_1)
else:
    print ("azimuth_1: %s" %azimuth_1)