求两条垂直的直线 与 的交点坐标

求两条垂直的直线与的交点坐标.... 求两条垂直的直线 与 的交点坐标. 展开
 我来答
米莫的光0062
推荐于2016-12-02 · TA获得超过362个赞
知道答主
回答量:121
采纳率:0%
帮助的人:121万
展开全部

由直线 互相垂直,得
时, 成为
联立两条直线的方程,得到方程组
解方程组,得
所以,两条直线相交于点
悟叶野s
2015-11-11 · TA获得超过3592个赞
知道答主
回答量:1172
采纳率:100%
帮助的人:137万
展开全部
原理是两点确定一条直线,利用公式 y = ax+b 去计算
然后根据与直线方程Ax+By+C=0(A≠0,B≠0)垂直的直线方程是Bx-Ay+m = 0,(m是参变量)的原理求出垂线方程的m值,然后根据两个直线方程求出交点坐标.
其中pt1和pt2为已知的两个在直线上的点,pt3为垂线上的点坐标ptCross为获取的交点坐标
[cpp] view plaincopyprint?
/** @ 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;
}
/** @ 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公式为)
[cpp] view plaincopyprint?
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式