2017-01-12 92 views
-3

考虑到矩形的边长(高度宽度),我想计算从一个角到另一个角的斜边度以及它的长度(勾股定理)。如何在不使用“手动实现算法”的情况下使用java编写此代码,无法找到我正在查找的方法?如何计算矩形斜边的长度和角度?

+0

你尝试过什么了吗?你有没有想过你可以用什么公式来产生结果? – nvioli

+0

使用实际数学? 'arctan(高度/宽度)'? – Moira

+4

它当然可以做_without_'commons-math',如果这有助于 – khelwood

回答

2

鉴于宽度w和高度h,对角线的长度由

Math.sqrt(w*w+h*h) // pythagoras 

给予或者您可以使用Math.hypot(w,h)为你做这个。

对角线的角度可以通过

Math.atan(h/w) // arc tan in radians 

来计算,您也可以使用替代反正切功能,atan2,但只有事项,如果你需要的结果在一个特定的范围内归还。

要从弧度转换为度数,可以使用Math.toDegrees

+0

难道你不想'斜边'的斜边?基本上一样的东西 – xenoterracide

+0

显然如此。我以前并没有意识到“低压”。谢谢。 – khelwood

+0

我刚注意到它,一旦你指出'我以前没有需要的数学'类 – xenoterracide

1

你应该使用:

org.apache.commons.math3.analysis.function.Atan atan = org.apache.commons.math3.analysis.function.Atan(); 
double angle = atan.value(height/width); 
org.apache.commons.math3.analysis.function.Sqrt sqrt = org.apache.commons.math3.analysis.function.Sqrt(); 
double length = sqrt.value(height*height+width*width); 
+0

我正在寻找'几何'包... – xenoterracide

+1

@ xenoterracide但你说过使用commons-math,然后你编辑了你的问题。我刚回答你的原始问题,对吧? –

+0

基本上,我不认为知道如何去做这两件事都是不好的,我会在当天晚些时候接受一个答案(我喜欢允许一段时间发生upvoting,因为人们不倾向于阅读接受的问题答案) – xenoterracide