首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法通过编程来检查一个角度是否是直角?

有没有办法通过编程来检查一个角度是否是直角?
EN

Stack Overflow用户
提问于 2019-05-28 05:55:14
回答 5查看 128关注 0票数 0

我用python绘制了一个角度

以下是代码

代码语言:javascript
复制
x = [0,0.5,1]
y = [0,0.5,0]
plt.scatter(x,y)
plt.plot(x,y)
plt.show()

有没有办法通过编程来检查角度是否为直角?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-05-28 06:04:41

是的,有。

代码语言:javascript
复制
x = [0,0.5,1]
y = [0,0.5,0]
points = [np.array(point) for point in zip(x,y)]
a, b, c = points
ba = a - b
bc = c - b
cosine_angle = np.dot(ba, bc) / (np.linalg.norm(ba) * np.linalg.norm(bc))
angle_rad = np.arccos(cosine_angle)
angle_deg = np.rad2deg(angle_rad)
print(angle_deg) # 90.0
票数 -1
EN

Stack Overflow用户

发布于 2019-05-28 06:20:02

最简单的方法是测试向量的dot product是否为0。

在您的例子中,您只需计算:

代码语言:javascript
复制
v1 = ( (x[1]-x[0]), (y[1]-y[0]) ) <- (0.5, 0.5)
v2 = ( (x[2]-x[1]), (y[2]-y[1]) ) <- (0.5, -0.5)

dot_product = v1[0]*v2[0] + v1[1]*v2[1] <- 0.5² - 0.5² = 0
票数 5
EN

Stack Overflow用户

发布于 2019-05-28 06:01:55

您可以尝试计算角度,但更简单的方法是检查毕达哥拉斯定理是否适用。为此,您需要计算三条边的大小,然后检查A^2 + B^2 ~= C^2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56332815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档