求用c语言写一个判断凹凸四边形的代码。,什么是凸四边形图片?

发布时间:2020-07-09 10:59:06

求用c语言写一个判断凹凸四边形的代码。,什么是凸四边形图片?

网友回答

你可以参考下面的方法:
  .判断一个封闭图形是凹集还是凸集
  语法:result=convex(Point *p,int n);
  参数:
  *p: 封闭曲线顶点数组
  n: 封闭曲线顶点个数
  返回值: 1:凸集;-1:凹集;0:曲线不符合要求无法计算
  注意:
   默认曲线为简单曲线:无交叉、无圈
  源程序:
  
  typedef struct {
   double x,y;
  } Point;
  int convex(Point *p,int 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; //CONCAVE
   }
   if (flag != 0)
   return 1; //CONVEX
   else
   return 0;
  }

网友回答

111222222222222222222222222333333333333
以上问题属网友观点,不代表本站立场,仅供参考!