#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-4;
const double PI = acos(-1.0);
struct point {
  double x, y;
  void read() { scanf("%lf%lf", &x, &y); }
} p[3];
double gcd(double x, double y) {
  return y > eps ? gcd(y, x - floor(x / y) * y) : x;
}
double getdis(point a, point b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
double solve(double a, double b, double c) {
  return acos((a * a + b * b - c * c) / (2.0 * a * b));
}
int main() {
  for (int i = 0; i < 3; i++) p[i].read();
  double a = getdis(p[0], p[1]);
  double b = getdis(p[0], p[2]);
  double c = getdis(p[1], p[2]);
  double p = (a + b + c) / 2.0;
  double s = sqrt(p * (p - a) * (p - b) * (p - c));
  double R = (a * b * c) / (4.0 * s);
  double A = solve(b, c, a);
  double B = solve(a, c, b);
  double C = solve(a, b, c);
  double n = PI / gcd(A, gcd(B, C));
  printf("%.10f\n", R * R * sin(2 * PI / n) * n / 2.0);
  return 0;
}
