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.计算点到线段的最近点

如果该线段平行于X轴(Y轴),则过点point作该线段所在直线的垂线,垂足很容
易求得,然后计算出垂足,如果垂足在线段上则返回垂足,否则返回离垂足近的端
点;

如果该线段不平行于X轴也不平行于Y轴,则斜率存在且不为0。设线段的两端点为
pt1和pt2,斜率为:
k = ( pt2.y - pt1. y ) / (pt2.x - pt1.x );
该直线方程为:
y = k* ( x - pt1.x) + pt1.y
其垂线的斜率为 - 1 / k,
垂线方程为:
y = (-1/k) * (x - point.x) + point.y
联立两直线方程解得:
x = ( k^2 * pt1.x + k * (point.y - pt1.y ) + point.x ) / ( k^2 + 1)
y = k * ( x - pt1.x) + pt1.y;

然后再判断垂足是否在线段上,如果在线段上则返回垂足;如果不在则计算两端点
到垂足的距离,选择距离垂足较近的端点返回。

求点到直线的垂足和最近点相关推荐

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

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

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

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

  3. Opencv-python 计算点到直线的垂足点

    Opencv-python 计算点到直线的垂足点 代码 import numpy as np import cv2 as cv# 获取直线起始,结束点 def get_line_se(img, lin ...

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

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

  5. c 空间点到直线的垂足及距离计算

    已知条件: 已知空间一个点的坐标a(x0,y0,z0),已知空间的另外两个点的坐标b(x1,y1,z1),c(x2,y2,z2),求a点到 b,c两点所在直线的 距离最近的点的坐标 可以说是a点到 过 ...

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

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

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

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

  8. 【学习笔记】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​),点到直线的垂直距离 ...

  9. 求点到直线的最短距离及垂足

    一.根据两点求直线方程 已知直线上两点为:(x1,x2),(y1,y2); 设方程为:Ax+By+C=0; 1. 求斜率:k=(y2-y1)/(x2-x1): 2. 直线方程为: y-y1=k(x-x ...

最新文章

  1. SLAM算法&技术之Gauss-Newton非线性最小二乘算法
  2. 极限脱出 量子计算机,《极限脱出3:零时困境》50条指向zero身份线索
  3. 阿德:我在去哪儿干了些什么,3个月业绩400%提升
  4. 详解Windows内存分页机制
  5. ajax面试技术回答模板
  6. java实现迷你计算机,用JAVA写一个迷你编辑器.doc
  7. JavaScript 运行机制详解:再谈Event Loop
  8. 如何实现A星寻路算法 Cocos2d-x 3.0 beta2
  9. BAT警示:没试过这个方法就别说会数据分析!!
  10. 小网站服务器空间,小型网站空间服务器
  11. mysql更新一条语句_讲讲一条MySQL更新语句是怎么执行的?
  12. IDEA中配置OpenJDK8并查看native方法源码
  13. python金融基础知识_python金融实务从入门到精通(23节课)
  14. Python迭代器是什么?
  15. Apriori算法及例题
  16. 基于java的在线考试系统设计(含源文件)
  17. linux shell脚本中打开另一个终端并在新终端中执行shell脚本
  18. adb cat delay 2 second
  19. 物联网工程 | CAN(Controller Area Network)控制器局域网络详解
  20. java程序员必知的 8大排序

热门文章

  1. java入门教学书,Java面试技巧合集
  2. 利用Python将WEBVTT格式的视频字幕文件转为SRT格式
  3. 前端小白配置mac下node+vue开发环境的各种姿势
  4. PAT 7-8 超速判断 (10 分)c++
  5. python的点号“.“都能用来做什么
  6. 在Modelsim中添加Vivado仿真库
  7. QEMU guest与host通过网络通信——bridge/hostfwd/guestfwd
  8. Ubuntu18.04 下图像处理开源软件库Opencv3.4.16的安装及使用
  9. 4.5k star,一款开源的数据可视化分析平台,提供多种大屏模板,非常炫酷
  10. 如何将m3u8网络视频转码保存到本地