Как найти арктангенс прямоугольного треугольника, используя только гипотенузу?
Хорошо, поэтому мне нужно сделать так, чтобы C прошел кратчайший путь от A до B. От A до B - гипотенуза моего прямоугольного треугольника, и мне нужно указать C арктангенс указанного треугольника. Как мне это сделать и есть ли у формулы имя?
Ответов (5)5
Arctan приведет к градусам или радианам, поэтому ваши A и B, скорее всего, будут иметь такие координаты, как (x, y). Затем вы выполняете arctan ((By - Ay) / (Bx - Ax)), если я правильно помню, здесь Bx - это координата x точки B и т. Д.
Если A и B не имеют координат, вы не сможете получить осмысленные градусы.
Не совсем понятно, о чем вы спрашиваете, но я думаю, вы пытаетесь найти угол линии AB. Я собираюсь сделать предположение, что вы знаете или можете вычислить координаты (x, y) как A, так и B, потому что в противном случае вы не сможете решить проблему.
Похоже, вы обрисовали большую часть решения ... угол будет равен арктангенту расстояния (y / x). Итак, если мы рассматриваем A (y) как координату y для A, то вы смотрите на что-то вроде:
arctan ((A(y) - B(y)) / (A(x) - B(x)))
Это помогает? Или вы ищете что-то немного другое?
РЕДАКТИРОВАТЬ: нужно знать, в каком порядке вы рассматриваете термины (переходите ли вы от A к B или наоборот) и т.д. проблемы.
Если от A до B является гипотенуза вашего прямоугольного треугольника, то от A до B также будет кратчайший путь от A до B, потому что это прямая линия между точками.
Вы можете вычислить арктангенс любого непрямого угла, разделив длину смежной стороны на длину противоположной стороны, потому что это обратная касательная. Но с описанной вами информацией у вас не будет ни числителя, ни знаменателя.
Прямоугольников с гипотенузой заданной длины бесконечно много.
If you only have one length and there is no hidden assumption here (like say, one side of the triangle has been normalized): you can't.
An interesting hidden assumption might be:
- Все расстояния целые
- Длина треугольника не меньше его высоты.
Тогда проблема просто сложная.
Если A
и B
являются точками, то предполагаемый угол, который вы хотите, является углом, взятым к оси x, и вы получаете его (используя фортранские имена):
atan((B.y - A.y)/(B.x - A.x))
или если он есть в вашей библиотеке
atan2((B.y - A.y),(B.x - A.x))
который аккуратно обрабатывает деление на ноль ...