#include <bits/stdc++.h>
using namespace std;
struct P {
  double x, y;
  P(double x = 0, double y = 0) : x(x), y(y) {}
  double operator^(const P &b) const { return x * b.y - y * b.x; }
  P operator-(const P &b) const { return P(x - b.x, y - b.y); }
} p[100];
const double eps = 1e-8;
double acosdeg(double l, double r, double acr) {
  return acos((l * l + r * r - acr * acr) / (2 * l * r));
}
int sgn(double x) {
  if (fabs(x) < eps) return 0;
  if (x < 0)
    return -1;
  else
    return 1;
}
struct Line {
  P s, e;
  Line(){};
  Line(P a, P b) {
    s = a;
    e = b;
  }
  Line(double a, double b, double c) {
    if (sgn(a) == 0) {
      s = P(0, -c / b);
      e = P(1, -c / b);
    } else if (sgn(b) == 0) {
      s = P(-c / a, 0);
      e = P(-c / a, 1);
    } else {
      s = P(0, -c / b);
      e = P(1, (-c - a) / b);
    }
  }
  P crossP(Line v) {
    double a1 = (v.e - v.s) ^ (s - v.s);
    double a2 = (v.e - v.s) ^ (e - v.s);
    return P((s.x * a2 - e.x * a1) / (a2 - a1),
             (s.y * a2 - e.y * a1) / (a2 - a1));
  }
};
double dist(P a, P b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
bool sgn(double a, double b) { return fabs(a - b) < 1e-2; }
double fgcd(double a, double b) {
  if (sgn(a, 0)) return b;
  if (sgn(b, 0)) return a;
  return fgcd(b, fmod(a, b));
}
int main() {
  cin >> p[1].x >> p[1].y >> p[2].x >> p[2].y >> p[3].x >> p[3].y;
  P z1 = P((p[1].x + p[2].x) / 2, (p[1].y + p[2].y) / 2);
  P z2 = P((p[2].x + p[3].x) / 2, (p[2].y + p[3].y) / 2);
  double a1, b1, c1, a2, b2, c2;
  if (p[1].y == p[2].y)
    b1 = 0, a1 = 1, c1 = -z1.x;
  else
    b1 = 1, a1 = (p[1].x - p[2].x) / (p[1].y - p[2].y), c1 = -z1.y - a1 * z1.x;
  if (p[2].y == p[3].y)
    b2 = 0, a2 = 1, c2 = -z2.x;
  else
    b2 = 1, a2 = (p[2].x - p[3].x) / (p[2].y - p[3].y), c2 = -z2.y - a2 * z2.x;
  Line l1 = Line(a1, b1, c1);
  Line l2 = Line(a2, b2, c2);
  P e = l1.crossP(l2);
  double r = dist(e, p[2]);
  double a = dist(p[1], p[2]);
  double b = dist(p[3], p[2]);
  double c = dist(p[1], p[3]);
  double deg1 = 2 * asin(a / (2 * r));
  double deg2 = 2 * asin(b / (2 * r));
  double deg3 = 2 * 3.1415926535897932 - deg1 - deg2;
  double deg = fgcd(deg1, fgcd(deg2, deg3));
  double ss = 3.1415926535897932 * r * r * sin(deg) / deg;
  printf("%.9lf\n", ss);
  return 0;
}
