求点到直线的最短距离及垂足
一、根据两点求直线方程
已知直线上两点为:(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
求点到直线的最短距离及垂足相关推荐
- 点到直线的距离,垂足,对称点,两点所成的直线方程
[原文:https://blog.csdn.net/qq_37621623/article/details/80231729] 一.求两点所形成的直线方程: 给定两点p1(x1,y1),p2(x2,y ...
- 牛客小白月赛2-B小马过河(求点到直线的垂足)
题目链接 求点到直线的垂足分为 空间 .平面 原理: 空间: #include<iostream> #include<cmath> using namespace std; c ...
- 求点到直线的垂足和最近点
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 ...
- 【MATLAB】求点到多边形的最短距离
文章目录 0.引言 1.原理 2.代码及实用教程 0.引言 \qquad点与多边形的关系无非三种--内部.上.外部.本文定义点在多边形内部距离为负,点在多边形边上距离为0,到多边形外部距离为正. 1. ...
- python输入两点坐标求距离_大一Python课的习题,输入两点,建立起直线方程y=kx+b。输入第3点,求点到直线的距离。这怎...
展开全部 # -*- coding:utf-8 -*- import math point_a=raw_input('please input point A coordinates: For Exa ...
- 关于知道两点求直线方程 求点到直线的距离
已知直线上的两点P1(X1,Y1) P2(X2,Y2), P1 P2两点不重合.则直线的一般式方程AX+BY+C=0中,A B C分别等于: A = Y2 - Y1 B = X1 - X2 C = X ...
- 【学习笔记】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),点到直线的垂直距离 ...
- 图像中求点到直线的垂足
已知图像中线段的两个点,求另外一个点到这个点的垂足. 一.垂足公式 已知直线一般式方程时: 设已知直线外一点坐标为 ( x 0 , y 0 ) (x0,y0) (x0,y0),垂足坐标为 ( x , ...
- 利用matlab求点到直线距离和垂足坐标(开源,易使用修改)
利用matlab求点C到向量AB的垂直距离以及垂足E点坐标 A.B两点构成向量AB:C为任一点.求C点到向量AB的垂直距离与C点到AB的垂足坐标. 结果说明:C2ABJvLi--C点到向量AB的垂直距 ...
最新文章
- PyTorch 1.7发布,支持CUDA 11、Windows分布式训练
- 用python怎么赚钱-用python赚钱(python新手怎么兼职)
- linux系统下deepin eclipse不能显示源码报class File Editor Source not found
- 针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom
- GoogleNet网络详解与keras实现
- 运动世界校园显示服务器开小差,小学新生入学适应存在的问题及教育对策 ——以徐州市某小学为例...
- python后端接口怎么写_看看人家那后端API接口写得,那叫一个优雅!
- Linux通过SSH实现免密登录
- freebsd mount linprocfs
- java 数组扩容_Java数组扩容算法及Java对它的应用
- java怎么定义_java怎么定义方法
- ubuntu 选择独立显卡或则intelcpu内集成显卡
- XTP dockingpane的使用方法
- 《计算机操作系统》重点知识笔记整理(一)
- 懒人如何减肥肚子和腰 减腰腹最好的最快方法
- 形式化、半形式化和非形式化
- Spring Boot 1.5.10项目引入knife4j接口文档
- 伺服编码器差分信号转PLC24V脉冲信号变送器0-5V电平隔离器 DIN33
- 英语信件_如何创建动画的旧信件
- AI Insight:放弃幻想,搞 AI 必须过数学关
热门文章
- python练手小游戏_Python小游戏练手EMS员工项目自学者练习
- 南开15计算机基础,南开大学计算机基础06-07_B卷
- java cad polyline_CAD中的各种Polyline
- android鼾声分析,鼾声分析器
- mysql gbk支持_让MYSQL支持GBK
- 【工作经验分享】mysql备份恢复命令
- 字节跳动最新开源!java语言程序设计进阶篇
- 【深度学习】Transformer在语义分割上的应用探索
- Keras【Deep Learning With Python】Autoencoder 自编码(看不懂你打我系列!)
- python【蓝桥杯vip练习题库】BASIC-19完美的代价(贪心算法)