RT
#include<bits/stdc++.h>
using namespace std;
const double pi=3.14159;
double R,p,S,a,b,c,Angle;
int Retemp;
struct Node{
double x,y,csinc,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 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.csinc=S*2/b/c; B.csinc=S*2/a/c; C.csinc=S*2/a/b;
A.coss=sqrt(1.0-sqr(A.csinc)); B.coss=sqrt(1.0-sqr(B.csinc)); C.coss=sqrt(1.0-sqr(C.csinc));
A.sin2=2.0*A.csinc*A.coss; B.sin2=2.0*B.csinc*B.coss; C.sin2=2.0*C.csinc*C.coss;
R=a/A.csinc/2.0;
A.angle=asin(A.sin2); A.plont=(int)(360.0/(A.angle*180.0/pi));
B.angle=asin(A.sin2); B.plont=(int)(360.0/(B.angle*180.0/pi));
C.angle=asin(A.sin2); C.plont=(int)(360.0/(C.angle*180.0/pi));
Retemp=gcd(gcd(A.plont,B.plont),C.plont);
Angle=360.0/Retemp;
printf("%lf",1.0*sqr(R)*sin(Angle/180*pi)/2*Retemp);
return 0;
}