8

我试图在下面找出三角形的角度,我知道它应该是 90 度,但是我不知道如何在下面实际计算它:

在此处输入图像描述

这是我尝试过的:

angle = math.cos(7/9.899)
angleToDegrees = math.degrees(angle)

returns: 43.XX

我究竟做错了什么?

4

5 回答 5

17

它比这更复杂一些。你需要使用余弦定律

>>> A = 7
>>> B = 7
>>> C = 9.899
>>> from math import acos, degrees
>>> degrees(acos((A * A + B * B - C * C)/(2.0 * A * B)))
89.99594878743945

这精确到 4 位有效数字。如果您提供更精确的 C 值,您将获得更准确的结果。

>>> C=9.899494936611665
>>> degrees(acos((A * A + B * B - C * C)/(2.0 * A * B)))
90.0
于 2013-09-03T03:02:29.640 回答
3

您也可以使用它。

print(str(int(round(math.degrees(math.atan2(x,y)))))+'°')

这接受两个输入作为三角形的两个高度,您可以获得正确度数格式的输出角度。

于 2019-08-12T10:05:28.077 回答
0

我认为您正在寻找 math.acos 而不是 math.cos,您想返回其值是这两个边的比率的角度。不取其余弦。

于 2013-09-03T02:36:36.303 回答
0

Trig 函数会将角度转换为某个三角形的某个边的长度。特别地,正切是对边与相邻边的比率。 math.tan(7/7)是与 1(=7/7) 弧度角相对的直角三角形的长度。这个长度 (~1.557) 恰好接近 90 度的弧度数 (pi/2 ~ 1.571)。

如前所述,您正在寻找一个反三角函数来将长度转换回角度。

于 2013-09-03T02:52:44.197 回答
0

用这个:

import math
AB = float(input())
BC = float(input())

print(str(int(round(math.degrees(math.atan2(AB, BC)))))+'°')
于 2018-04-29T15:02:18.237 回答