求兩點間距離
1 /***** 求兩點間距離*****/
2 float getDistance(CvPoint pointO, CvPoint pointA) 3 { 4 float distance; 5 distance = powf((pointO.x - pointA.x), 2) + powf((pointO.y - pointA.y), 2); 6 distance = sqrtf(distance); 7 return distance; 8 }
點到直線的距離:P到AB的距離
1 /***** 點到直線的距離:P到AB的距離*****/
2 //P為線外一點,AB為線段兩個端點
3 float getDist_P2L(CvPoint pointP, CvPoint pointA, CvPoint pointB) 4 { 5 //求直線方程
6 int A = 0, B = 0, C = 0; 7 A = pointA.y - pointB.y; 8 B = pointB.x - pointA.x; 9 C = pointA.x*pointB.y - pointA.y*pointB.x; 10 //代入點到直線距離公式
11 float distance = 0; 12 distance = ((float)abs(A*pointP.x + B*pointP.y + C)) / ((float)sqrtf(A*A + B*B)); 13 return distance; 14 }