расчет площади и периметра различной формы - PullRequest
0 голосов
/ 18 декабря 2010
Area of a circle, rectangle, triangle, trapezoid, parallelogram, ellipse, sector.
Perimeter of a rectangle, square

Существует ли библиотека Java, которая предоставляет математические функции для вычисления вышеупомянутого?

Ответы [ 4 ]

3 голосов
/ 18 декабря 2010
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));
}

и т.д.

Насколько сложно это кодировать? Вам действительно нужна библиотека, чтобы сделать это для вас?

Вы также можете перенести этот код C , который реализует вычисления площади и периметра для многих фигур.

2 голосов
/ 18 декабря 2010

Я бы не советовал использовать библиотеку для таких вещей. Просто найдите формулы для каждого и напишите одну строку кода, которая требуется для каждого.

Походит на чье-то классическое первое объектно-ориентированное задание:

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.
1 голос
/ 18 декабря 2010

Единственная нетривиальная формула, которую вы запрашивали, - это периметр эллипса.

Вам понадобится либо полных эллиптических интегралов (для этого в Google), либо числовое интегрирование, либо приблизительные формулы (в основном, вам нужно использовать «Бесконечную серию 2»)

0 голосов
/ 22 июля 2013

В общем случае вы можете получить точную оценку методом Монте-Карло.Вам нужен хороший генератор случайных чисел.Возьмите прямоугольник, достаточно большой, чтобы в нем содержалась Форма, и получите большое количество случайных точек в прямоугольнике.Для каждого используйте содержит (double x, double y), чтобы увидеть, находится ли точка в Shape или нет.Отношение точек в Shape ко всем точкам в прямоугольнике, умноженное на площадь прямоугольника, является оценкой площади Shape.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...