#include <bits/stdc++.h>
using namespace std;
const double pi = 3.141592;
double gcd(double x, double y) {
  double eps = 1e-4;
  while (fabs(x) > eps && fabs(y) > eps) {
    if (x > y)
      x -= floor(x / y) * y;
    else
      y -= floor(y / x) * x;
  }
  return x + y;
}
int main() {
  double x1, y1, x2, y2, x3, y3;
  double a_square, b_square, c_square, a, b, c;
  double angle_a, angle_b, angle_c;
  cin >> x1 >> y1;
  cin >> x2 >> y2;
  cin >> x3 >> y3;
  a_square = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
  b_square = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);
  c_square = (x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1);
  a = sqrt(a_square);
  b = sqrt(b_square);
  c = sqrt(c_square);
  angle_a = acos((b_square + c_square - a_square) / (2 * b * c));
  angle_b = acos((a_square + c_square - b_square) / (2 * a * c));
  angle_c = acos((a_square + b_square - c_square) / (2 * a * b));
  double p = (a + b + c) / 2.0;
  double s = sqrt(p * (p - a) * (p - b) * (p - c));
  double r = a * b * c / (4.0 * s);
  double polygon_angle;
  polygon_angle = angle_a > angle_b ? angle_a : angle_b;
  polygon_angle = polygon_angle > angle_c ? polygon_angle : angle_c;
  int n = int(0.5 + pi / gcd(gcd(angle_a, angle_b), angle_c));
  double area = n * r * r * sin(2 * pi / n) / 2.0;
  cout.setf(ios::showpoint);
  cout.precision(6);
  cout.setf(ios::fixed);
  cout << area << endl;
  return 0;
}
