Area of a circle, rectangle, triangle, trapezoid, parallelogram, ellipse, sector.
Perimeter of a rectangle, square
是否有一个提供数学函数的java库来计算上述内容?
答案 0 :(得分:3)
public double areaOfRectangle(double width, double length) {
return width*height;
}
public double areaOfCircle(double radius) {
return Math.PI * radius * radius;
}
public double areaOfTriangle(double a, double b, double c) {
double s = (a+b+c)/2;
return Math.sqrt(s * (s-a) * (s-b) * (s-c));
}
等
自己编码有多难?您真的需要一个库来为您完成吗?
你也可以移植this C code来实现许多形状的面积和周长计算。
答案 1 :(得分:2)
我不建议你使用库来做这样的事情。只需查看每个公式,然后编写每行所需的单行代码。
听起来像是某人经典的第一个面向对象的任务:
package geometry;
public interface Shape
{
double perimeter();
double area();
}
class Rectangle implements Shape
{
private double width;
private double height;
Rectangle(double w, double h)
{
this.width = w;
this.height = h;
}
public double perimeter()
{
return 2.0*(this.width + this.height);
}
public double area()
{
return this.width*this.height;
}
}
// You get the idea - same for Triangle, Circle, Square with formula changes.
答案 2 :(得分:1)
你要求的唯一非平凡的公式是椭圆的周长。
你需要完整的椭圆积分(google for that),或数值积分,或approximate formulas(基本上,“无限系列2”是你应该使用的那个)
答案 3 :(得分:-1)
对于一般情况,您可以使用蒙特卡罗方法进行近似估计。你需要一个好的随机数发生器。取一个足够大的矩形来包含Shape,并在矩形中获得大量随机点。对于每个,使用包含(double x,double y)来查看该点是否在Shape中。 Shape中的点与矩形中所有点的比率,乘以矩形的面积是Shape区域的估计值。