一、根据两点求直线方程

已知直线上两点为:(x1,x2),(y1,y2);

设方程为:Ax+By+C=0;

1. 求斜率:k=(y2-y1)/(x2-x1);

2. 直线方程为: y-y1=k(x-x1);

换算得:kx-y+y1-kx1=0,即:

A=k
B=-1
C=y1-kx1=y1-(y2-y1)/(x2-x1)*x1

二、求距离和垂足公式

1. 点(x0,y0)到直线的距离公式为:

d=abs(Ax0+By0+C)/sqrt(A*A+B*B);

2. 设垂足为p,则:

p.x=(B*B*x0-A*B*y0-A*C)/(A*A+B*B)
p.y=(A*A*y0-A*B*x0-B*C)/(A*A+B*B) 

三、 代码

输入点和线段,返回距离和垂足

 1 function getDistanceP2L(point,line){
 2
 3 var x1=line.startPoint.x;
 4 var y1=line.startPoint.y;
 5 var x2=line.endPoint.x;
 6 var y2=line.endPoint.y;
 7 var x0=point.x;
 8 var y0=point.y;
 9
10 var k=x1==x2?10000:(y2-y1)/(x2-x1);//当x1=x2时,给斜率设一个较大值10000
11 var a=k;
12 var b=-1;
13 var c=y1-k*x1;
14
15 var d=Math.abs(a*x0+b*y0+c)/Math.sqrt(a*a+b*b);
16
17 var px=(b*b*x0-a*b*y0-a*c)/(a*a+b*b);
18 var py=(a*a*y0-a*b*x0-b*c)/(a*a+b*b);
19 var p=new Point(px,py);
20
21 return [d,p];
22 }

转载于:https://www.cnblogs.com/snsart/p/10954593.html

求点到直线的最短距离及垂足相关推荐

  1. 点到直线的距离,垂足,对称点,两点所成的直线方程

    [原文:https://blog.csdn.net/qq_37621623/article/details/80231729] 一.求两点所形成的直线方程: 给定两点p1(x1,y1),p2(x2,y ...

  2. 牛客小白月赛2-B小马过河(求点到直线的垂足)

    题目链接 求点到直线的垂足分为 空间 .平面 原理: 空间: #include<iostream> #include<cmath> using namespace std; c ...

  3. 求点到直线的垂足和最近点

    1.公式(比较稳啊) 设直线方程为ax+by+c=0,点坐标为(m,n) 则垂足为((b*b*m-a*b*n-a*c)/(a*a+b*b),(a*a*n-a*b*m-b*c)/(a*a+b*b)) 2 ...

  4. 【MATLAB】求点到多边形的最短距离

    文章目录 0.引言 1.原理 2.代码及实用教程 0.引言 \qquad点与多边形的关系无非三种--内部.上.外部.本文定义点在多边形内部距离为负,点在多边形边上距离为0,到多边形外部距离为正. 1. ...

  5. python输入两点坐标求距离_大一Python课的习题,输入两点,建立起直线方程y=kx+b。输入第3点,求点到直线的距离。这怎...

    展开全部 # -*- coding:utf-8 -*- import math point_a=raw_input('please input point A coordinates: For Exa ...

  6. 关于知道两点求直线方程 求点到直线的距离

    已知直线上的两点P1(X1,Y1) P2(X2,Y2), P1 P2两点不重合.则直线的一般式方程AX+BY+C=0中,A B C分别等于: A = Y2 - Y1 B = X1 - X2 C = X ...

  7. 【学习笔记】Matlab中求点到直线的距离

    点到直线 假设直线L1: A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0,直线外一点 ( x 0 , y 0 ) (x_0,y_0) (x0​,y0​),点到直线的垂直距离 ...

  8. 图像中求点到直线的垂足

    已知图像中线段的两个点,求另外一个点到这个点的垂足. 一.垂足公式 已知直线一般式方程时: 设已知直线外一点坐标为 ( x 0 , y 0 ) (x0,y0) (x0,y0),垂足坐标为 ( x , ...

  9. 利用matlab求点到直线距离和垂足坐标(开源,易使用修改)

    利用matlab求点C到向量AB的垂直距离以及垂足E点坐标 A.B两点构成向量AB:C为任一点.求C点到向量AB的垂直距离与C点到AB的垂足坐标. 结果说明:C2ABJvLi--C点到向量AB的垂直距 ...

最新文章

  1. PyTorch 1.7发布,支持CUDA 11、Windows分布式训练
  2. 用python怎么赚钱-用python赚钱(python新手怎么兼职)
  3. linux系统下deepin eclipse不能显示源码报class File Editor Source not found
  4. 针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom
  5. GoogleNet网络详解与keras实现
  6. 运动世界校园显示服务器开小差,小学新生入学适应存在的问题及教育对策 ——以徐州市某小学为例...
  7. python后端接口怎么写_看看人家那后端API接口写得,那叫一个优雅!
  8. Linux通过SSH实现免密登录
  9. freebsd mount linprocfs
  10. java 数组扩容_Java数组扩容算法及Java对它的应用
  11. java怎么定义_java怎么定义方法
  12. ubuntu 选择独立显卡或则intelcpu内集成显卡
  13. XTP dockingpane的使用方法
  14. 《计算机操作系统》重点知识笔记整理(一)
  15. 懒人如何减肥肚子和腰 减腰腹最好的最快方法
  16. 形式化、半形式化和非形式化
  17. Spring Boot 1.5.10项目引入knife4j接口文档
  18. 伺服编码器差分信号转PLC24V脉冲信号变送器0-5V电平隔离器 DIN33
  19. 英语信件_如何创建动画的旧信件
  20. AI Insight:放弃幻想,搞 AI 必须过数学关

热门文章

  1. python练手小游戏_Python小游戏练手EMS员工项目自学者练习
  2. 南开15计算机基础,南开大学计算机基础06-07_B卷
  3. java cad polyline_CAD中的各种Polyline
  4. android鼾声分析,鼾声分析器
  5. mysql gbk支持_让MYSQL支持GBK
  6. 【工作经验分享】mysql备份恢复命令
  7. 字节跳动最新开源!java语言程序设计进阶篇
  8. 【深度学习】Transformer在语义分割上的应用探索
  9. Keras【Deep Learning With Python】Autoencoder 自编码(看不懂你打我系列!)
  10. python【蓝桥杯vip练习题库】BASIC-19完美的代价(贪心算法)