#include <cstdio>
#include <cmath>
using namespace std;

struct point{
    double x;
    double y;

    point(){x = 0; y = 0;}

    point(double _x, double _y){
        x = _x;
        y = _y;
    }
};

const double PI = 3.1415926535;

inline double distance(const point &p1, const point &p2){
    return sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y));
}
inline double heron(double a, double b, double c){
    double p = (a + b + c) / 2;
    return sqrt(p * (p - a) * (p - b) * (p - c));
}
inline void print(const point &p){
    printf("(%lf, %lf) ", p.x, p.y);
}
int main(){

//freopen("baruri.in", "r", stdin);

point A, B, C;
double x, y, distAB, distBC, distCA;
double AreaABC, AreaA, AreaB, AreaC;
double _AunionB_diffC;

scanf("%lf %lf", &x, &y); A = point(x, y);
scanf("%lf %lf", &x, &y); B = point(x, y);
scanf("%lf %lf", &x, &y); C = point(x, y);

distAB = distance(A, B);
distBC = distance(B, C);
distCA = distance(C, A);

AreaABC = heron(distAB, distBC, distCA);

AreaA = PI * (distAB / 2) * (distAB / 2);
AreaB = PI * (distCA / 2) * (distCA / 2);
AreaC = PI * (distBC / 2) * (distBC / 2);

_AunionB_diffC = (AreaA / 2) + (AreaB / 2) - (AreaC - AreaABC);

printf("%.5lf", AreaABC);

return 0;
}