Как рассчитать расстояние от камеры до цели?(в Python) - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь вычислить расстояние между камерой и землей, используя это уравнение.

Расстояние = D

Высота камеры = CH (метры)

Угол камеры= CA

D = CH / cos (CA)

Итак, в коде я делаю это для вычисления расстояния

def findDistance(CH, CA):
    return CH / math.cos(CA)

#for test
cameraHight = 1.2 #In meter
cameraAngle = 65   #Degress angle
estimatedDistance = findDistance(cameraHight, cameraAngle)
print(estimatedDistance)

, которое затем дает мне это -2.1335083711460943.Я не думаю, что ответ должен быть отрицательным, если это так.Расстояние до цели примерно правильное, но это не минус 2 метра.

Буду признателен за любые предложения о том, как лучше сделать это или что я делаю неправильно.Спасибо

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

функция cos принимает аргументы в радианах, а не в градусах.

Изменить

return CH / math.cos(CA)

до

return CH / math.cos(math.radians(CA))
0 голосов
/ 10 сентября 2018

Скважина 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)
...