判断一个封闭图形是凹集还是凸集
代码如下:
struct Point{ double x,y; }; int convex(Point *p,int n)//n为点数 { int i,j,k; int flag = 0; double z; if (n < 3) return 0; for (i=0;i<n;i++){ j = (i + 1) % n; k = (i + 2) % n; z = (p[j].x - p[i].x) * (p[k].y - p[j].y); z -= (p[j].y - p[i].y) * (p[k].x - p[j].x); if(z<0) flag |= 1; else if (z > 0) flag |= 2; if (flag==3) return -1;//凸集 } if (flag != 0) //凹集 return 1; else return 0; //曲线不合法 }

&spm=1001.2101.3001.5002&articleId=38679031&d=1&t=3&u=6e59ba0a754f44a1894ef4b29e7c027a)
1644

被折叠的 条评论
为什么被折叠?



