计算三个坐标点夹角
下面函数计算节点vNodeStart,vNodeMiddle和vNodeEnd之间夹角:
double GetNodeAngle(Vertex vNodeStart,Vertex vNodeMiddle,Vertex vNodeEnd)
{
double ms_x = vNodeStart.ix - vNodeMiddle.ix;
double ms_y = vNodeStart.iy - vNodeMiddle.iy;
double me_x = vNodeEnd.ix - vNodeMiddle.ix;
double me_y = vNodeEnd.iy - vNodeMiddle.iy;
double v1 = (ms_x * me_x) + (ms_y * me_y);
double ms_val = sqrt(ms_x*ms_x + ms_y*ms_y);
double me_val = sqrt(me_x*me_x + me_y*me_y);
double cosM = v1 / (ms_val*me_val);
double dangleSME = acos(cosM) * 180 / M_PI;
return dangleSME;
}
另外方法可参考:http://blog.csdn.net/xjanker2/article/details/4790128