#include <bits/stdc++.h>
using namespace std;
int n, m;
double s, r, S, p;
double x[4], y[4], ang[4], L[4];
double dis(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double gcd(double a, double b) {
  if (a < 1e-2) return b;
  if (b < 1e-2) return a;
  return gcd(b, fmod(a, b));
}
int main(int argc, char *argv[]) {
  for (int i = 0; i < 3; ++i) {
    scanf("%lf%lf", &x[i], &y[i]);
  }
  for (int i = 0; i < 3; ++i) {
    L[i] = dis(x[i], y[i], x[(i + 1) % 3], y[(i + 1) % 3]);
  }
  sort(L, L + 3);
  p = (L[0] + L[1] + L[2]) / 2;
  s = sqrt(p * (p - L[0]) * (p - L[1]) * (p - L[2]));
  r = L[0] * L[1] * L[2] / (4 * s);
  for (int i = 0; i < 2; ++i) ang[i] = acos(1 - L[i] * L[i] / (2 * r * r));
  ang[2] = 2 * acos(-1.0) - ang[1] - ang[0];
  double unit = 0;
  for (int i = 0; i < 3; ++i) unit = gcd(unit, ang[i]);
  printf("%.6f\n", acos(-1.0) * r * r * sin(unit) / unit);
  return 0;
}
