创建一个结构体来存放点坐标x,y,并创建一个数组来存放这些点,去调用定义的方法
#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
typedef struct {
int x;
int y;
int flag;
}tubao;
typedef struct
{
tubao a[10];
int length;
}Point;
Point p;
void ConvexHull()
{
int i;
for(i=0;i<10;i++)
{
cin>>p.a[i].x>>p.a[i].y;
}
int j;
int a=0;
int b=0;
int c=0;
for( i=0;i<10;++i)
for(j=i+1;j<=10;++j)
{
a=p.a[j].y-p.a[i].y;
b=p.a[i].x-p.a[j].x;
c=(p.a[i].x*p.a[j].y)-(p.a[i].y*p.a[j].x);
int s1=0;
int s2=0;
int k;
for(k=0;k<10;k++)
{
if((k==j)||(k==i))continue;
if((a*p.a[k].x+b*p.a[k].y)==c)
{++s1;++s2;}
if((a*p.a[k].x+b*p.a[k].y)>c)
++s1;
if((a*p.a[k].x+b*p.a[k].y)<c)
++s2;
}
if((s1==8)||(s2==8))
{
p.a[i].flag=1;
p.a[j].flag=1;
}
}
cout<<"凸包的点集集合:"<<endl;
for(i=0;i<10;i++)
{
if(p.a[i].flag==1)
{
cout<<"("<<p.a[i].x<<","<<p.a[i].y<<")"<<endl;
}
}
}
int main()
{
ConvexHull();
return 1;
}