Java 无法计算正多边形的面积-使用切线公式的结果错误
我有这个计算正多边形面积的方法:Java 无法计算正多边形的面积-使用切线公式的结果错误,java,trigonometry,Java,Trigonometry,我有这个计算正多边形面积的方法: public double getArea() { return (sideLength * sideLength * sides) / (4 * Math.tan(180 / (double) sides)); } 对于边长和两边都等于10的情况,返回-219.816218。 但是,此在线计算器: 返回769.4。我的方法有什么问题?指定了我使用的公式 .使用以下返回语句 r
public double getArea() {
return (sideLength *
sideLength * sides) /
(4 * Math.tan(180 / (double) sides));
}
对于边长和两边都等于10的情况,返回-219.816218。
但是,此在线计算器:
返回769.4。我的方法有什么问题?指定了我使用的公式
.使用以下返回语句
return (sideLength * sideLength * sides) / (4 * Math.tan((180 / sides) * 3.14159 / 180));
这里添加了*3.14159/180以将面积从度转换为弧度使用以下返回语句
return (sideLength * sideLength * sides) / (4 * Math.tan((180 / sides) * 3.14159 / 180));
此处,添加*3.14159/180以将面积从度转换为弧度三角函数的参数定义为弧度,而不是度。使用Math.toRadians将角度(以度为单位)转换为弧度-如下所示:
Math.tan(Math.toRadians(180 / (double) sides))
或者从弧度开始计算
Math.tan(Math.PI / sides)
三角函数的参数定义为弧度,而不是度。使用Math.toRadians将角度(以度为单位)转换为弧度-如下所示:
Math.tan(Math.toRadians(180 / (double) sides))
或者从弧度开始计算
Math.tan(Math.PI / sides)
问题是Math.tan函数使用弧度作为默认度量单位。改用这个:
(4*Math.tan(Math.PI/180 * 180/(double) sides))
问题是Math.tan函数使用弧度作为默认度量单位。改用这个:
(4*Math.tan(Math.PI/180 * 180/(double) sides))