#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-5;
const double pi = acos(-1.0);
pair<double, double> p1;
pair<double, double> p2;
pair<double, double> p3;
double area(double a, double b, double c) {
  double p = (a + b + c) / 2;
  return sqrt(p * (p - a) * (p - b) * (p - c));
}
double length(pair<double, double> &a, pair<double, double> &b) {
  return sqrt((a.first - b.first) * (a.first - b.first) +
              (a.second - b.second) * (a.second - b.second));
}
double gcd(double a, double b) {
  while (fabs(a - b) > eps && a > 0 && b > 0) {
    if (a - b > eps) {
      a -= b;
    } else if (b - a > eps) {
      b -= a;
    }
  }
  return a;
}
int main() {
  double s, a, r, n, angelp1, angelp2, angelp3, len1, len2, len3;
  while (scanf("%lf%lf%lf%lf%lf%lf", &p1.first, &p1.second, &p2.first,
               &p2.second, &p3.first, &p3.second) != EOF) {
    len1 = length(p1, p2);
    len2 = length(p1, p3);
    len3 = length(p2, p3);
    a = (len1 + len2 + len3) / 2;
    s = sqrt(a * (a - len1) * (a - len2) * (a - len3));
    r = len1 * len2 * len3 / (4 * s);
    angelp1 = (len1 * len1 + len2 * len2 - len3 * len3) / (2 * len1 * len2);
    angelp2 = (len1 * len1 + len3 * len3 - len2 * len2) / (2 * len1 * len3);
    angelp3 = (len2 * len2 + len3 * len3 - len1 * len1) / (2 * len2 * len3);
    n = pi / gcd(acos(angelp1), gcd(acos(angelp2), acos(angelp3)));
    double ans = n / 2 * r * r * sin(2 * pi / n);
    printf("%lf\n", ans);
  }
  return 0;
}
