#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double eps = 1e-5;
double gcd(double x, double y) {
  while (fabs(x) > eps and fabs(y) > eps) {
    if (x > y)
      x -= floor(x / y) * y;
    else
      y -= floor(y / x) * x;
  }
  return x + y;
}
double a_cos(double a, double b, double c) {
  return acos((a * a + b * b - c * c) / (2 * a * b));
}
double semip(double a, double b, double c) { return (a + b + c) / 2.0; }
double area_t(double a, double b, double c) {
  double P = semip(a, b, c);
  double second = sqrt(P * (P - a) * (P - b) * (P - c));
  return second;
}
double circumradius(double a, double b, double c) {
  double second = area_t(a, b, c);
  double R = (a * b * c) / (4 * second);
  return R;
}
double dist(double x1, double y1, double x2, double y2) {
  double D = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
  return D;
}
double area_regular_polygon(double R, double N) {
  double A = (R * R * 0.5 * N * sin(2 * PI / N));
  return A;
}
double X1, X2, X3, Y1, Y2, Y3;
inline void ReadInput(void) {
  scanf("%lf", &X1);
  scanf("%lf", &Y1);
  scanf("%lf", &X2);
  scanf("%lf", &Y2);
  scanf("%lf", &X3);
  scanf("%lf", &Y3);
}
inline void solve(void) {
  double A, B, C, R, N, area;
  double x, y, z;
  x = dist(X1, Y1, X2, Y2);
  y = dist(X1, Y1, X3, Y3);
  z = dist(X2, Y2, X3, Y3);
  A = a_cos(x, y, z);
  B = a_cos(x, z, y);
  C = a_cos(y, z, x);
  N = PI / (gcd(A, gcd(B, C)));
  R = circumradius(x, y, z);
  area = area_regular_polygon(R, N);
  printf("%.9lf\n", area);
}
inline void Refresh(void) {}
int main() {
  ios_base::sync_with_stdio(false);
  ReadInput();
  solve();
  return 0;
}
