资讯详情

c++ 根据三个点,测出角度

适用于opencv,居于c ,角度测量的二维平面

float angle(Point pt1, Point pt0, Point pt2)//角度计算 {  double dx1 = (pt1.x - pt0.x);  double dy1 = (pt1.y - pt0.y);  double dx2 = (pt2.x - pt0.x);  double dy2 = (pt2.y - pt0.y);  double angle_line = (dx1*dx2   dy1 * dy2) / sqrt((dx1*dx1   dy1 * dy1)*(dx2*dx2   dy2 * dy2)   1e-10);  double cosM;  if (pt2.y > pt1.y)  {   cosM = 1;  }  else if (pt2.y <= pt1.y)  {   cosM = -1;  }   double a = acos(angle_line) * (cosM)*180 / 3.141592653;   Point linefirst =  Point(pt1.x - pt0.x, pt1.y - pt0.y );  Point linesecond =  Point(pt2.x - pt0.x, pt2.y - pt0.y );  bool isClockwise = linefirst.x * linesecond.y - linesecond.x * linefirst.y < 0;  if (isClockwise)  {   a = 360 - a;  }  return a; }

标签: dx1台中仪表变送器dx1通化仪表变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台