#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
const double eps = 1e-3;
bool zero(double x) { return fabs(x) < eps; }
double gcd(double x, double y) {
  if (zero(y)) {
    return x;
  } else {
    return gcd(y, fmod(x, y));
  }
}
double Get_deg(double x, double y) {
  if (zero(x)) {
    if (y > eps)
      return PI / 2;
    else
      return 1.5 * PI;
  }
  if (x < 0) {
    return atan(y / x) + PI;
  } else if (x > 0 && y < 0) {
    return atan(y / x) + 2 * PI;
  }
  return atan(y / x);
}
int main() {
  double x1, y1, x2, y2, x3, y3;
  scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &x3, &y3);
  double ax1 = 2 * (x1 - x2);
  double ay1 = 2 * (y1 - y2);
  double b1 = x1 * x1 - x2 * x2 + y1 * y1 - y2 * y2;
  double ax2 = 2 * (x1 - x3);
  double ay2 = 2 * (y1 - y3);
  double b2 = x1 * x1 - x3 * x3 + y1 * y1 - y3 * y3;
  double D = ax1 * ay2 - ay1 * ax2;
  double D1 = b1 * ay2 - ay1 * b2;
  double D2 = ax1 * b2 - b1 * ax2;
  double x = D1 / D;
  double y = D2 / D;
  double r = sqrt((x1 - x) * (x1 - x) + (y1 - y) * (y1 - y));
  double deg[3];
  deg[0] = Get_deg(x1 - x, y1 - y);
  deg[1] = Get_deg(x2 - x, y2 - y);
  deg[2] = Get_deg(x3 - x, y3 - y);
  sort(deg, deg + 3);
  double Deg1 = 2 * PI - deg[2] + deg[0];
  double Deg2 = deg[1] - deg[0];
  double Deg3 = deg[2] - deg[1];
  double g = gcd(Deg1, Deg2);
  g = gcd(g, Deg3);
  printf("%.8lf\n", r * r * sin(g) * PI / g);
  return 0;
}
