#include <bits/stdc++.h>
typedef struct {
  double x, y;
} Point;
double distance(Point p1, Point p2) {
  return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
}
int Jud(double a, double b) {
  int i;
  for (i = 1;; i++) {
    if (fabs(i * b - a) <= 1E-3) return 1;
    if (i * b > a) break;
  }
  return 0;
}
int main() {
  Point p1, p2, p3;
  double la, lb, lc, angle1, angle2, angle3;
  double R, angle;
  int i;
  while (scanf("%lf%lf%lf%lf%lf%lf", &p1.x, &p1.y, &p2.x, &p2.y, &p3.x,
               &p3.y) != EOF) {
    la = distance(p1, p2);
    lb = distance(p2, p3);
    lc = distance(p1, p3);
    angle1 = acos((la * la + lc * lc - lb * lb) / (2 * la * lc));
    angle2 = acos((la * la + lb * lb - lc * lc) / (2 * la * lb));
    angle3 = acos((lc * lc + lb * lb - la * la) / (2 * lc * lb));
    for (i = 3; i <= 100; i++) {
      angle = 2 * 3.14159265358979 / i;
      if (Jud(2 * angle1, angle) == 1 && Jud(2 * angle2, angle) == 1 &&
          Jud(2 * angle3, angle) == 1)
        break;
    }
    R = (la / sin(angle3)) / 2;
    printf("%0.9lf\n", (((R * R) / 2) * sin(angle)) * i);
  }
  return 0;
}
