点到直线的垂直交点坐标 和 距离计算
2011-07-27 16:45
531 查看
越来越发现自己数学之差了,连简单的数学运算忘记了,
,写下实现点到直线交点坐标的计算方法
原理是两点确定一条直线,利用公式 y = ax+b 去计算
然后根据与直线方程Ax+By+C=0(A≠0,B≠0)垂直的直线方程是Bx-Ay+m = 0, (m是参变量)的原理求出垂线方程的m值,然后根据两个直线方程求出交点坐标。
其中pt1和pt2为已知的两个在直线上的点,pt3为垂线上的点坐标ptCross为获取的交点坐标
点到直线距离为,使用公式
,(点p0(x0, y0),直线L公式为
)
,写下实现点到直线交点坐标的计算方法
原理是两点确定一条直线,利用公式 y = ax+b 去计算
然后根据与直线方程Ax+By+C=0(A≠0,B≠0)垂直的直线方程是Bx-Ay+m = 0, (m是参变量)的原理求出垂线方程的m值,然后根据两个直线方程求出交点坐标。
其中pt1和pt2为已知的两个在直线上的点,pt3为垂线上的点坐标ptCross为获取的交点坐标
/** @ brief 根据两点求出垂线过第三点的直线的交点 @ param pt1 直线上的第一个点 @ param pt2 直线上的第二个点 @ param pt3 垂线上的点 @ return 返回点到直线的垂直交点坐标 */ QPointF test(const QPointF &pt1, const QPointF &pt2, const QPointF &pt3) { qreal A = (pt1.y()-pt2.y())/(pt1.x()- pt2.x()); qreal B = (pt1.y()-A*pt1.y()); /// > 0 = ax +b -y; 对应垂线方程为 -x -ay + m = 0;(mm为系数) /// > A = a; B = b; qreal m = pt3.x() + A*pt3.y(); /// 求两直线交点坐标 QPointF ptCross; ptCross.setX((m-A*B)/(A*A + 1)); ptCross.setY(A*ptCross.x()+B); return ptCross; }
点到直线距离为,使用公式
,(点p0(x0, y0),直线L公式为
)
qreal test2(const QPointF &pt1, const QPointF &pt2, const QPointF &pt3) { qreal A = (pt1.y()-pt2.y())/(pt1.x()- pt2.x()); qreal B = (pt1.y()-A*pt1.y()); /// > 0 = ax +b -y; return qAbs(A*pt3.x() + B -pt3.y())/sqrt(A*A + 1); }
相关文章推荐
- 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离。显示为公里、米
- php计算两个坐标直线距离
- 计算两个经纬度坐标的直线距离
- JavaScript 根据两点的经纬度坐标,计算实际的直线距离
- js 求点到直线的距离(由2点确定的直线,求到第三点的距离,交点坐标)
- 计算几何模板补充(三维空间体积、平面、直线、向量相关计算。附上hdu4741,求异面直线的最短距离与交点)
- C#实现根据地图上的两点坐标,计算直线距离
- hdu 2857:Mirror and Light(计算几何,点关于直线的对称点,求两线段交点坐标)
- 计算几何练习题――直线交点
- 计算直线的交点数—动态规划
- 计算点到直线的垂点坐标
- 计算两平面坐标点的距离
- java实现计算地理坐标之间的距离
- php 计算两点地理坐标的距离
- python pymongo 经纬度坐标距离计算
- 计算地图上两坐标点之间的距离
- 计算地图上两坐标点之间的距离
- ACM——计算直线的交点数
- 计算直线的交点数(动态规划)