You are on page 1of 2

#include <iostream>

#include <fstream>
#include <vector>
#include "../geometrie.h"

using namespace std;

point p[5];;

int triunghi()
{
int i, j;
for(i=1;i<=4;i++)
{
// testez daca punctul i e in triunghi

vector<point> v;
for(j=1;j<=4;j++)
if(i != j)
v.push_back(p[j]);

if(punctInTriunghi(p[i], v[0], v[1], v[2]))


return i;
}
return 0;
}

int main()
{
int i, j;

ifstream fin("in.txt");
fin>>p[1].x>>p[1].y;
fin>>p[2].x>>p[2].y;
fin>>p[3].x>>p[3].y;
fin>>p[4].x>>p[4].y;
fin.close();

cout<<"S-au citit punctele:\n";


for(i=1;i<=4;i++)
cout<<p[i].x<<' '<<p[i].y<<'\n';
cout<<'\n';

// coliniare
if(coliniar4(p[1], p[2], p[3], p[4]))
{
cout<<"Punctele sunt coliniare!\n";

float maxDist = -1;


int p1, p2;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
if(dist(p[i], p[j]) > maxDist)
{
maxDist = dist(p[i],p[j]);
p1 = i;
p2 = j;
}
cout<<"I = {P"<<p1<<", P"<<p2<<"}\n";
cout<<"J = {";
for(i=1;i<=4;i++)
if(i != p1 && i != p2)
cout<<"P"<<i<<", ";
cout<<"\b\b}\n";
}

// triunghi
else if(int pctInt = triunghi())
{
cout<<"Punctele formeaza un triunghi\n";
cout<<"I = {P"<<pctInt<<"}\n";
cout<<"J = {";
for(i=1;i<=4;i++)
if(i != pctInt)
cout<<"P"<<i<<", ";
cout<<"\b\b}\n";
}

// patrulater convex
else
{
cout<<"Punctele formeaza un patrulater convex\n";

bool gasit = false;


for(i=1;i<=4 && !gasit;i++)
for(j=i+1;j<=4 && !gasit;j++)
{
vector<int> comp;
for(int k=1;k<=4;k++)
if(k != i && k != j)
comp.push_back(k);

if(sign(p[comp[0]], p[i], p[j]) * sign(p[comp[1]], p[i],


p[j]) < 0)
{
cout<<"I = {P"<<i<<", P"<<j<<"}\n";
cout<<"J = {P"<<comp[0]<<", P"<<comp[1]<<"}\n";

gasit = true;
}
}
}

return 0;
}

You might also like