#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-4;
double fgcd(double a, double b) {
  if (fabs(b) < 0.0001) return a;
  return fgcd(b, fmod(a, b));
}
int main() {
  double x[3], y[3];
  int i = 0;
  while (i < 3) {
    cin >> x[i] >> y[i];
    i++;
  }
  double a, b, c, ga, gb, gc;
  cout << setprecision(6) << fixed;
  a = pow(pow(x[0] - x[1], 2) + pow(y[0] - y[1], 2), 0.5);
  b = pow(pow(x[0] - x[2], 2) + pow(y[0] - y[2], 2), 0.5);
  c = pow(pow(x[1] - x[2], 2) + pow(y[1] - y[2], 2), 0.5);
  ga = acos((b * b + c * c - a * a) / (2 * b * c));
  gb = acos((c * c + a * a - b * b) / (2 * c * a));
  gc = 3.14159265 - ga - gb;
  double s = (a + b + c) / 2;
  double area = pow(s * (s - a) * (s - b) * (s - c), 0.5);
  double radius = a * b * c / (4 * area);
  double piratio = fgcd(fgcd(2 * ga, 2 * gb), 2 * gc);
  double sides = 2 * 3.14159265 / piratio;
  cout << sides * radius * radius * sin(piratio) / 2 << endl;
  i = 3;
  return 0;
}
