平行线判断函数+求平行线之间的距离
2015-03-25 14:11
519 查看
struct LINE { CvPoint pt0; CvPoint pt1; LINE( CvPoint pta, CvPoint ptb ) { pt0 = pta; pt1 = ptb; } LINE() { pt0.x = pt0.y = 0; pt1.x = pt1.y = 0; } }; // 得到直线的tan斜率 double GetTanOfLine( LINE line ) { double x_dis = line.pt0.x - line.pt1.x; if ( x_dis == 0.0 ) return 10e9; return (line.pt0.y - line.pt1.y) / x_dis; } // 得到两条平行线之间的距离 double GetDisOfParallelLines( LINE line0, LINE line1 ) { CvPoint midPoint = cvPoint( (line0.pt0.x + line0.pt1.x)/2, (line0.pt0.y + line0.pt1.y)/2 ); // 中点 double x_dis = line1.pt0.x - line1.pt1.x; if ( x_dis == 0.0 ) return fabs((double)(midPoint.x - line0.pt0.x)); // 如果line1 垂直x轴 double a = (line1.pt0.y - line1.pt1.y) / x_dis; double b = line1.pt0.y - (line1.pt0.x * a); return fabs(a * midPoint.x - midPoint.y + b) / sqrt(a * a + 1); } // 判断两直线是否平行 bool IsParallelLines( LINE line0, LINE line1 ) { #define LIMIT (1.1547 / 3) #近似平行线的斜率之差的范围 double angleTan0 = GetTanOfLine( line0 ); double angleTan1 = GetTanOfLine( line1 ); if ( fabs(angleTan0 - angleTan1) < (double)LIMIT ) { return 1; } return 0; }
相关文章推荐
- 第七周项目 用一般函数,成员函数,友元函数求两点之间的距离
- MapKit 地图上两点之间的距离(源码函数)
- Java总哈希表的运用,判断一个数组中是否存在相同的元素之间的距离在k以内!
- 通过C++实现判断点与多边形的关系和两点之间的距离
- 在ORalce 中,怎么判断两个时间段之间是否有交集, 编写的一个函数
- 创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数, 运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要 加入自己的成员变量或成员函数
- 7.2 设计一个点类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函 数 dist 和显示坐标点的成员函数,并用数据进行测试。
- 判断两个物体之间的距离
- 用友元函数设计点类求两点之间的距离
- 第七周项目 用一般函数求两点之间的距离
- 第七周项目 求两点之间的距离 成员函数
- 给出每个站点之间的最短距离,求出最短路径,用unordered_map来实现,让你实现find_cheapest_transform函数
- //设计一个点类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函 //数 dist 和显示坐标点的成员函数,并用数据进行测试
- 用成员函数设计点类求两点之间的距离
- 编写判断素数的函数,在main函数打印出100~1000之间所有的素数;
- 编写判断素数的函数。在主调函数中输出1-100之间的素数。
- 判断两个物体之间的距离
- 【opencv】两条平行线之间的距离
- 第七周实验报告(二)利用成员函数、友元函数和一般函数求两点之间距离
- 算法竞赛入门经典: 第四章 函数与递归 4.1求两点之间距离