Зная декартовы координаты вершин выпуклого четырехугольника, вычислить его площадь

code: #cpp
#include <iostream>
#include <math.h>
 
using namespace std;
 
typedef double D;
D line(D, D, D, D);
D geron(D, D, D, D, D, D);
 
int main() {
	D x1, y1, x2, y2, x3, y3, x4, y4, s;
	cout<<"\nx1= "; cin>>x1;  	cout<<"y1= "; cin>>y1;
	cout<<"\nx2= "; cin>>x2;	cout<<"y2= "; cin>>y2;
	cout<<"\nx3= "; cin>>x3; 	cout<<"y3= "; cin>>y3;
	cout<<"\nx4= "; cin>>x4; 	cout<<"y4= "; cin>>y4;
 
	s=geron(x1, y1, x2, y2, x3, y3) + geron(x1, y1, x3, y3, x4, y4);
	cout<<"\n Площадь четырёхугольника= "<<s<<endl;
 
	return 0;
}
 
D line(D a, D b, D c, D d) {
	return sqrt((a-c)*(a-c)+(b-d)*(b-d)); 
}
 
D geron(D a1, D a2, D b1, D b2, D c1, D c2) {
	D p, ab, bc, ca;
	ab=line(a1, a2, b1, b2);
	bc=line(b1, b2, c1, c2);
	ca=line(c1, c2, a1, a2);
	p=(ab+bc+ca)/2;
	return sqrt(p*(p-ab)*(p-bc)*(p-ca));
}
Поделиться:

Похожие статьи: