Sunteți pe pagina 1din 2

Nume: Severin Andrei

Grupa: 511B


/* Se dau n puncte in plan de coordonate xi, yi (i=1,..,n)
Determinati aria poligonului descris de cele n varfuri si coordonatele centrului de masa
(descompunere in triunghiuri cu varfurile in origine) det aria si centrul de masa.*/

#include <iostream.h>
#include <conio.h>
#include <math.h>

using namespace std;
int n,i,j,x[100],y[100];
double d[100],r[100],a[100],p[100],s=0, xg[100], yg[100], xc, yc, numarator1, numarator2;
void varfuri()
{
cout<<"\nDati numarul de varfuri are poligonului: ";
cin>>n;
for (i=0;i<n;i++)
{ cout<<"\nx["<<i<<"] si y["<<i<<"] = ";
cin>>x[i]>>y[i];
}
}
void distante()
{
for (i=0;i<n;i++)
d[i]=sqrt ( (x[i]-x[(i+1)%n])*(x[i]-x[(i+1)%n]) + (y[i]-y[(i+1)%n])*(y[i]-
y[(i+1)%n]) );
for (i=0;i<n;i++)
r[i]=sqrt ( x[i]*x[i]+y[i]*y[i] );
}
void arii()
{
for (i=0;i<n;i++)
{ p[i]= (d[i]+r[i]+r[(i+1)%n])/2 ;
a[i]= sqrt ( p[i]*(p[i]-d[i] )*(p[i]-r[i])*(p[i]-r[(i+1)%n]) );
s=s+a[i];
}
}
void greutate()
{
for(i=0;i<n;i++)
{
xg[i]=(x[i]+x[(i+1)%n])/3;
yg[i]=(y[i]+y[(i+1)%n])/3;
}
}
int main()
{
varfuri();
distante();
arii();
greutate();
for(i=0;i<n;i++)
{
numarator1+=a[i]*xg[i];
numarator2+=a[i]*yg[i];
}
xc=numarator1/s;
yc=numarator2/s;
cout<<"Aria poligonului este "<<s<<"\n";
cout<<"Centrul de greutate al poligonului: ("<<xc<<", "<<yc<<")\n";
return 0;
}

S-ar putea să vă placă și