#include<bits/stdc++.h>
using namespace std;
double PI=3.14159265358979323846;
double R,p,S,a,b,c,Angle;
int Retemp;
struct Node{
double x,y,sinn,coss,sin2,cos2,angle;
int plont;
}A,B,C;
double sqr(double x){return x*x;}
double sqrtm(Node x,Node y){return sqrt(sqr(x.x-y.x)+sqr(x.y-y.y));}
int gcd(int x,int y){return (y==0?x:gcd(y,x%y));}
int lcq(int x,int y){return x*y/gcd(x,y);}
int main(){
scanf("%lf%lf%lf%lf%lf%lf",&A.x,&A.y,&B.x,&B.y,&C.x,&C.y);
a=sqrtm(B,C);b=sqrtm(A,C);c=sqrtm(A,B);
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
A.sinn=S*2/b/c; B.sinn=S*2/a/c; C.sinn=S*2/a/b; R=a/A.sinn/2.0;
A.angle=asin(A.sinn); A.plont=(int)(1.0/A.angle*PI);
B.angle=asin(B.sinn); B.plont=(int)(1.0/B.angle*PI);
C.angle=asin(C.sinn); C.plont=(int)(1.0/C.angle*PI);
Retemp=lcq(lcq(A.plont,B.plont),C.plont);
Angle=360.0/Retemp;
printf("%lf",1.0*sqr(R)*sin(Angle/180*PI)/2*Retemp);
return 0;
}