#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
const long long LLINF = 9223372036854775807LL;
const double eps = 0.0001;
void swap(double &a, double &b) {
  double t = a;
  a = b;
  b = t;
}
int main() {
  double x1, x2, x3;
  double y1, y2, y3;
  double a1, a2, a3;
  double l1, l2, l3;
  cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
  l1 = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);
  l2 = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);
  l3 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
  a1 = acos((l2 + l3 - l1) / (2 * sqrt(l2) * sqrt(l3))) * 2;
  a2 = acos((l1 + l3 - l2) / (2 * sqrt(l1) * sqrt(l3))) * 2;
  a3 = acos((l1 + l2 - l3) / (2 * sqrt(l1) * sqrt(l2))) * 2;
  double r2 = l1 / (2 * (1 - cos(a1)));
  int i = 0;
  int count;
  double ang, z2, z3;
  if (a1 > a2) swap(a1, a2);
  if (a1 > a3) swap(a1, a3);
  while (true) {
    ang = a1 / (++i);
    z2 = a2 / ang;
    z3 = a3 / ang;
    if (abs(z3 - round(z3)) < eps && abs(z2 - round(z2)) < eps) {
      count = round(z2) + round(z3) + i;
      break;
    }
  }
  double s = count * (r2 * sin(ang)) / 2;
  printf("%.6lf\n", s);
  return 0;
}
