数学题,始终不懂为毛要用首尾顺次相接的向量来进行叉乘
稀里糊涂过了。。扔垃圾桶吧。。。
#include <stdio.h>
int n;
struct Tpoint {
int x;
int y;
} a[100000];
struct Tvector {
int x;
int y;
} b[100000];
int flag;
int main()
{
while (scanf("%d",&n),n) {
for(int i=0;i<n;i++) {
scanf ("%d%d",&a[i].x,&a[i].y);
}
for (int i=0;i<n-1; i++) {
b[i].x=a[i+1].x-a[i].x;
b[i].y=a[i+1].y-a[i].y;
}
b[n-1].x=a[0].x-a[n-1].x;
b[n-1].y=a[0].y-a[n-1].y;
flag=1;
for (int i=0; i<n-1; i++) {
if((b[i].x)*b[i+1].y - b[i+1].x*(b[i].y) < 0) {
flag=0;
//printf("%d%d",a[i].x,a[i].y);
break;
}
}
if((b[n-1].x)*b[0].y - b[0].x*(b[n-1].y) < 0) flag=0;
if(flag) printf("convex\n");
else printf("concave\n");
}
}
浙公网安备 33010602011771号