#include <bits/stdc++.h>
using namespace std;
double angle(double x1, double y1, double x2, double y2) {
  double m1 = sqrt(x1 * x1 + y1 * y1);
  double m2 = sqrt(x2 * x2 + y2 * y2);
  double dot = x1 * x2 + y1 * y2;
  if (dot < 0) dot *= -1;
  double arg = dot / (m1 * m2);
  return acos(arg);
}
int check(double ang, int n) {
  double theta = 2 * 3.141592 / n;
  double nsides = ang / theta;
  double f = nsides - 1.0e-4;
  if (f < (int)nsides) return 1;
  return 0;
}
double area(int n, double ang, double side) {
  double r = sqrt(side * side / (2 * (1 - cos(ang))));
  double A = 0.5 * r * r * sin(2 * 3.141592 / n);
  return n * A;
}
vector<double> x;
vector<double> y;
int main() {
  for (int i = 0; i < 3; i++) {
    double r, c;
    cin >> r >> c;
    x.push_back(r);
    y.push_back(c);
  }
  double res = 10000000;
  for (int n = 3; n <= 100; n++) {
    double ang1 = angle(x[1] - x[0], y[1] - y[0], x[2] - x[0], y[2] - y[0]);
    double ang2 = angle(x[0] - x[1], y[0] - y[1], x[2] - x[1], y[2] - y[1]);
    if (check(2 * ang1, n) && check(2 * ang2, n)) {
      double side =
          sqrt((x[2] - x[1]) * (x[2] - x[1]) + (y[2] - y[1]) * (y[2] - y[1]));
      res = min(res, area(n, 2 * ang1, side));
    }
  }
  printf("%.6f", res);
  return 0;
}
