我正在尝试使用此公式来计算相机与地面之间的距离。
距离= D
相机高度= CH(米)
相机角度= CA
D = CH / cos(CA)
所以在代码中,我这样做是为了计算距离
colour
然后给我这个-2.1335083711460943。我不认为答案应该是否定的。到目标的距离大约是正确的,但不是2米的负值。
任何有关如何更好地做到这一点或我做错了什么的建议,将不胜感激。 谢谢
答案 0 :(得分:1)
好cos(65度)= 0.42261826174,cos(65弧度)= -0.56245385123。
根据文档:
math.cos(x)
Return the cosine of x radians.
您需要先将度数转换为弧度。
cameraAngle = 65
cameraRadians = math.radians(cameraAngle)
然后在计算中使用cameraRadians而不是cameraAngle。
完整:
def findDistance(CH, CA):
return CH / math.cos(CA)
#for test
cameraHight = 1.2 #In meter
cameraAngle = 65 #Degress angle
cameraRadians = math.radians(cameraAngle) #convert degrees to radians
estimatedDistance = findDistance(cameraHight, cameraRadians)
print(estimatedDistance)
答案 1 :(得分:1)
cos函数采用弧度而不是度作为参数。
更改
return CH / math.cos(CA)
到
return CH / math.cos(math.radians(CA))