📄 scrambled polygon.cpp
字号:
#include<iostream>
#include<iomanip>
using namespace std;
class a
{
public:
double x,y;
double slopes;
};
int status[4]={0,0,0,0};
int compare(const void*m,const void *n)
{
if(((a*)m)->slopes>((a*)n)->slopes)return 1;
if(((a*)m)->slopes<((a*)n)->slopes)return -1;
if(((a*)m)->slopes==((a*)n)->slopes)return 0;
}
int main()
{
int i,j,start;
a quadrants[4][60];
double x,y;
cin>>x>>y;
while(cin>>x>>y)
{
if(x>0&&y>0)
{
quadrants[0][status[0]].x=x;
quadrants[0][status[0]].y=y;
quadrants[0][status[0]].slopes=y/x;
status[0]++;
}
if(x<0&&y>0)
{
quadrants[1][status[1]].x=x;
quadrants[1][status[1]].y=y;
quadrants[1][status[1]].slopes=y/x;
status[1]++;
}
if(x<0&&y<0)
{
quadrants[2][status[2]].x=x;
quadrants[2][status[2]].y=y;
quadrants[2][status[2]].slopes=y/x;
status[2]++;
}
if(x>0&&y<0)
{
quadrants[3][status[3]].x=x;
quadrants[3][status[3]].y=y;
quadrants[3][status[3]].slopes=y/x;
status[3]++;
}
}
for(i=0;i<4;i++)
if(status[i]!=0)
qsort(quadrants[i],status[i],sizeof(quadrants[i][0]),compare);
for(i=0;i<4;i++)
if(status[i]==0)
break;
for(j=i;;j++)
if(status[j%4]!=0)
break;
start=j%4;
cout<<"("<<0<<","<<0<<")"<<endl;
for(i=start;;i++)
{
if(status[i%4]==0)
break;
if(status[i%4]!=0)
{
for(j=0;j<status[i%4];j++)
cout<<"("<<quadrants[i%4][j].x<<","<<quadrants[i%4][j].y<<")"<<endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -