先判断是否相交,如相交,取次小和次大的两个点作为相交矩形的相对顶点即可
#include <bits/stdc++.h>
using namespace std;
double x[4],y[4];
bool inter(){
sort(x,x+2);sort(x+2,x+4);
sort(y,y+2);sort(y+2,y+4);
return x[0]<x[3]&&x[1]>x[2]&&y[0]<y[3]&&y[1]>y[2];
}
int main(){
while(cin>>x[0]>>y[0]){
for(int i=1;i<4;i++)
cin>>x[i]>>y[i];
if(inter()){
sort(x,x+4);sort(y,y+4);
printf("%.2f\n",(x[2]-x[1])*(y[2]-y[1]));
}else
printf("0.00\n");
}
return 0;
}