计算三角形Python的角度

时间:2013-09-03 02:30:59

标签: python math geometry angle

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

enter image description here

这是我尝试过的:

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

returns: 43.XX

我做错了什么?

5 个答案:

答案 0 :(得分:14)

比这更复杂一点。您需要使用law of cosines

>>> 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

答案 1 :(得分:0)

我认为你在寻找math.acos而不是math.cos,你想要返回其值为这两个边的比例的角度。不要拿它的余弦。

答案 2 :(得分:0)

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

如上所述,您正在寻找反向触发功能,将长度转换回角度。

答案 3 :(得分:0)

使用它:

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

print(str(int(round(math.degrees(math.atan2(AB, BC)))))+'°')

答案 4 :(得分:0)

您也可以使用它。

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

这将接受两个输入作为三角形的两个高度,并且您可以使用适当的度数格式获取输出角度。