我编写了这段代码,将大地坐标转换为笛卡尔坐标。它要求用户输入并打印x,y和z。
代码运行时没有任何错误,但是在输入之后,打印功能不会显示x
的值。
这里是什么问题?
谢谢您的帮助。
import math
a = 6378137
f= 0.00335281068
latitude = math.radians(float(input('Enter Latitude:')))
longitude = math.radians(float(input('Enter Longitude:')))
height = float(input('Enter Height:'))
def earthConverter(latitude, longitude, height):
N = a / math.sqrt(1-e**2 * math.sin(longitude)**2)
e = math.sqrt((2 * f) - (f**2))
x = (N + height) * math.cos(longitude) * math.cos(latitude)
y = (N + height) * math.cos(longitude) * math.sin(latitude)
z = (N * (1 - (e**2) ) + height) * math.sin(latitude)
return x, y, z
earthConverter(123.0256, 56.45648, 21322.4545)
print('x is %f' % x)
答案 0 :(得分:1)
似乎您的功能意图未正确复制。因为该代码将无法如上所示工作。似乎是复制和粘贴错误。
要解决此问题,您需要存储从函数返回的结果:
def earthConverter(latitude, longitude, height):
...
return x, y, z
x,y,z = earthConverter(123.0256, 56.45648, 21322.4545)
print('x is %f' % x)