#include <bits/stdc++.h>
using namespace std;
double a, b, c, s, r;
double A, B, C;
double eps = 1e-3;
double pi = acos(-1.0);
struct Point {
  double x, y;
} p[10];
double disP2P(Point a, Point b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
int sgn(double x) {
  if (fabs(x) < eps) return 0;
  if (x > 0) return 1;
  return -1;
}
double fgcd(double a, double b) {
  if (sgn(b) == 0) return a;
  return fgcd(b, fmod(a, b));
}
int main() {
  for (int i = 0; i < 3; ++i) {
    cin >> p[i].x >> p[i].y;
  }
  a = disP2P(p[0], p[1]);
  b = disP2P(p[1], p[2]);
  c = disP2P(p[2], p[0]);
  double x = (a + b + c) / 2;
  s = sqrt(x * (x - a) * (x - b) * (x - c));
  r = a * b * c / 4 / s;
  A = acos(1 - a * a / 2 / r / r);
  B = acos(1 - b * b / 2 / r / r);
  C = 2 * pi - A - B;
  double ang = fgcd(A, fgcd(B, C));
  double ans = pi / ang * r * r * sin(ang);
  printf("%.7f\n", ans);
}
