#include <bits/stdc++.h>
using namespace std;
const double fs = 1e-2, Pi = acos(-1.0);
struct point {
  double x, y;
} p[4];
double a, b, c, r, S, C, P, C1, A1, B1, R1, Ans;
double s(point a, point b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
double gcd(double a, double b) {
  return (fabs(b) > fs) ? gcd(b, fmod(a, b)) : a;
}
int main() {
  for (int i = 1; i <= 3; ++i) scanf("%lf%lf", &p[i].x, &p[i].y);
  a = s(p[1], p[2]), b = s(p[2], p[3]), c = s(p[1], p[3]), P = (a + b + c) / 2;
  S = sqrt(P * (P - a) * (P - b) * (P - c)), r = a * b * c / (4 * S);
  C1 = acos(1 - c * c / (2 * r * r)), A1 = acos(1 - a * a / (2 * r * r)),
  B1 = 2 * Pi - A1 - C1;
  R1 = gcd(A1, gcd(B1, C1));
  return printf("%.6lf", (Pi * r * r * sin(R1)) / R1), 0;
}
