#include <bits/stdc++.h>
using namespace std;
struct Point {
  double x, y;
} a, b, c;
double aa, bb, cc, r, PI = acos(-1.0);
double dis(Point a, Point b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
double cir_r(Point a, Point b, Point c) {
  double cosa, sina;
  aa = dis(b, c);
  bb = dis(a, c);
  cc = dis(a, b);
  cosa = (bb * bb + cc * cc - aa * aa) / (2 * bb * cc);
  sina = sqrt(1 - cosa * cosa);
  r = aa / sina / 2;
  return r;
}
bool check(double x) { return abs(x - floor(x + (1e-4))) < (1e-4); }
int main() {
  double A, B, C, ang;
  int i;
  scanf("%lf%lf", &a.x, &a.y);
  scanf("%lf%lf", &b.x, &b.y);
  scanf("%lf%lf", &c.x, &c.y);
  r = cir_r(a, b, c);
  A = asin(aa / (2 * r)) * 2;
  B = asin(bb / (2 * r)) * 2;
  C = asin(cc / (2 * r)) * 2;
  for (i = 3; i <= 100; i++) {
    ang = 2 * PI / i;
    if (check(A / ang) && check(B / ang) && check(C / ang)) break;
  }
  printf("%.10lf\n", i * 0.5 * r * r * sin(ang));
}
