#include <bits/stdc++.h>
using namespace std;
double ax, ay, bx, by, cx, cy, rx, ry, r, rr;
double phi_a, phi_b;
const double PII = 3.14159265358979323846264338327950288;
double check(int n) {
  double a = 2 * PII / n;
  bool ok1 = false;
  bool ok2 = false;
  for (int i = (1); i < (n); ++i) {
    double c = cos(a * i);
    if (fabs(c - phi_a) < 1e-5) ok1 = true;
    if (fabs(c - phi_b) < 1e-5) ok2 = true;
  }
  if (ok1 && ok2) {
    return rr * sin(a) / 2 * n;
  }
  return -1;
}
int main() {
  scanf("%lf %lf %lf %lf %lf %lf", &ax, &ay, &bx, &by, &cx, &cy);
  double D = 2 * (ax * (by - cy) + bx * (cy - ay) + cx * (ay - by));
  double A = ax * ax + ay * ay;
  double B = bx * bx + by * by;
  double C = cx * cx + cy * cy;
  rx = (A * (by - cy) + B * (cy - ay) + C * (ay - by)) / D;
  ry = (A * (cx - bx) + B * (ax - cx) + C * (bx - ax)) / D;
  rr = (ax - rx) * (ax - rx) + (ay - ry) * (ay - ry);
  r = sqrt(rr);
  phi_a = ((bx - rx) * (cx - rx) + (by - ry) * (cy - ry)) / rr;
  phi_b = ((ax - rx) * (cx - rx) + (ay - ry) * (cy - ry)) / rr;
  int n = 3;
  while (true) {
    double res = check(n++);
    if (res > -.5) {
      printf("%.7lf\n", res);
      break;
    }
  }
}
