#include <bits/stdc++.h>
using namespace std;
double gcd(double x, double y);
int main() {
  double x1, y1, x2, y2, x3, y3;
  cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
  double a = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
  double b = sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3));
  double c = sqrt((x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3));
  double S = fabs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))) / 2;
  double R = (a * b * c) / (4 * S);
  double A = acos((b * b + c * c - a * a) / (2 * b * c));
  double B = acos((a * a + c * c - b * b) / (2 * a * c));
  double C = acos((a * a + b * b - c * c) / (2 * a * b));
  double n = M_PI / gcd(gcd(A, B), C);
  double Area = 0.5 * n * R * R * sin(2 * M_PI / n);
  printf("%f", Area);
}
double gcd(double x, double y) {
  while (fabs(x) > 1e-4 && fabs(y) > 1e-4) {
    if (x > y)
      x -= floor(x / y) * y;
    else
      y -= floor(y / x) * x;
  }
  return x + y;
}
