点到直线的距离公式推导

本文地址:blog.lucien.ink/archives/495

摘自 点到直线距离公式的几种推导 - 三横先生的文章 - 知乎 的三角形面积法,稍作修改并更正书写错误。

起因

今天在 PPT 里看到一个点到超平面的距离公式 d=1∥w∥∣w⋅x0+b∣d = \frac{ 1 }{ \left\| \boldsymbol w \right\| }| \boldsymbol w \cdot \boldsymbol x_0 + \boldsymbol b |d=∥w∥1​∣w⋅x0​+b∣,看了半天没看懂为什么这样算,遂去问学霸,答曰“平面情况下就是点到直线的距离公式”。

万分惭愧,我连初中数学都忘了。

三角形面积法

直线 lll 方程为 Ax+By+C=0Ax + By + C = 0Ax+By+C=0,AAA、BBB 均不为 000,点 P(x0,y0)P(x_0, y_0)P(x0​,y0​),设点 PPP 到 lll 的距离为 ddd。

设点 R(xR,y0)R(x_R, y_0)R(xR​,y0​),点 S(x0,yS)S(x_0, y_S)S(x0​,yS​)。

由 R,SR, SR,S 在直线 lll 上,得到

AxR+By0+C=0Ax_R + By_0 + C = 0AxR​+By0​+C=0Ax0+ByS+C=0Ax_0 + By_S + C = 0Ax0​+ByS​+C=0

所以

xR=−By0−CAx_R = \frac{ -By_0 - C }{ A }xR​=A−By0​−C​yS=−Ax0−CBy_S = \frac{ -Ax_0 - C }{ B }yS​=B−Ax0​−C​

∣PR∣=∣x0−xR∣=∣x0−−By0−CA∣=∣Ax0+By0+CA∣| PR | = | x_0 - x_R | = | x_0 - \frac{ -By_0 - C }{ A } | = | \frac{ Ax_0 + By_0 + C }{ A } |∣PR∣=∣x0​−xR​∣=∣x0​−A−By0​−C​∣=∣AAx0​+By0​+C​∣∣PS∣=∣y0−yS∣=∣y0−−Ax0−CB∣=∣Ax0+By0+CB∣| PS | = | y_0 - y_S | = | y_0 - \frac{ -Ax_0 - C }{ B } | = | \frac{ Ax_0 + By_0 + C }{ B } |∣PS∣=∣y0​−yS​∣=∣y0​−B−Ax0​−C​∣=∣BAx0​+By0​+C​∣

于是

∣RS∣=PR2+PS2=A2+B2AB⋅∣Ax0+By0+C∣| RS | = \sqrt{ { PR }^2 + { PS }^2 } = \frac{ \sqrt{ A^2 + B^2 } }{ AB } \cdot | Ax_0 + By_0 + C |∣RS∣=PR2+PS2​=ABA2+B2​​⋅∣Ax0​+By0​+C∣

由 ΔPSR\Delta_{PSR}ΔPSR​ 得

d⋅∣RS∣=∣PR∣⋅∣PS∣d \cdot | RS | = | PR | \cdot | PS |d⋅∣RS∣=∣PR∣⋅∣PS∣

d=∣PR∣⋅∣PS∣∣RS∣=∣Ax0+By0+CA∣⋅∣Ax0+By0+CB∣A2+B2AB⋅∣Ax0+By0+C∣=∣Ax0+By0+C∣A2+B2d = \frac{ | PR | \cdot | PS | }{ | RS | } = \frac{ | \frac{ Ax_0 + By_0 + C }{ A } | \cdot | \frac{ Ax_0 + By_0 + C }{ B } | }{ \frac{ \sqrt{ A^2 + B^2 } }{ AB } \cdot | Ax_0 + By_0 + C | } = \frac{ | Ax_0 + By_0 + C | }{ \sqrt{ A^2 + B^2 } }d=∣RS∣∣PR∣⋅∣PS∣​=ABA2+B2​​⋅∣Ax0​+By0​+C∣∣AAx0​+By0​+C​∣⋅∣BAx0​+By0​+C​∣​=A2+B2​∣Ax0​+By0​+C∣​

另一种形式

设函数 f(x,y)=Ax+By+Cf(x, y) = Ax + By + Cf(x,y)=Ax+By+C,直线 l:Ax+By+C=0l: Ax + By + C = 0l:Ax+By+C=0 的法向量为 v(A,B)\boldsymbol v(A, B)v(A,B)。

则点 P(x0,y0)P(x_0, y_0)P(x0​,y0​) 到直线 lll 的距离 ddd 为

d=∣Ax0+By0+C∣A2+B2=f(x0,y0)∥v∥d = \frac{ | Ax_0 + By_0 + C | }{ \sqrt{ A^2 + B^2 } } = \frac{ f(x_0, y_0) }{ \left\| \boldsymbol v \right\| }d=A2+B2​∣Ax0​+By0​+C∣​=∥v∥f(x0​,y0​)​

注:∥v∥\left\| \boldsymbol v \right\|∥v∥ 为向量 v\boldsymbol vv 的 2-范数

点到直线的距离公式推导相关推荐

  1. 点到平面的距离公式推导

    预备知识: (1) 平面的一般表达式: 其中,n=(A,B,C)是平面的法向量,D决定了平面与原点之间的距离,当D=0时,平面经过原点. (2) 向量的模(长度): 给定一个向量V=(x,y,z),则 ...

  2. 过直线上一点画垂线图_苏教版四年级数学上册8.5认识垂直、点到直线的距离微课视频 | 练习...

    微课视频第一课时 微课视频第二课时 同步练习 参考答案 教学设计 垂直 教材第89~91页的内容. 1.结合实际情境和操作活动,认识垂直. 2.能借助直尺.三角尺.量角器等工具画出已知直线的垂线,并理 ...

  3. 点到线段的距离_直线垂直,垂线的性质,点到直线的距离

    欢迎关注公z号:沈阳奥数 两条直线相交所成的四个角中,有一个角是直角时,就说这两条直线互相垂直,其中一条直线叫做另一条直线的垂线,它们的交点叫垂足. 如图,直线AB与CD垂直于点E,记作:AB⊥CD于 ...

  4. 点到直线的距离c语言程序,点到线段的距离 题解(C++)

    初步分析 这道题之前有<点到直线的距离>一题. 如图,我们不妨来下个定义(名字是乱起的,如果有雷同就以以下定义为准): 对于任意线段l,在其两个端点上分别作垂直于l的直线,若点在两直线之间 ...

  5. 【JAVA 第四章 流程控制语句】课后习题 直线斜率 以及判断坐标是否在直线上点到直线的距离

    不知道对不对,请教大神帮忙找下.公式是否有错 import java.util.Scanner;public class Test {/*设计并实现一个MyLine 类,它表示直线.构造方法中使用两个 ...

  6. 点到曲线的距离公式_推导点到直线的距离公式到底有多少种方法?

    [总结]方程思想,这也是解析几何的主题思想,几何问题代数化,转化为代数计算. 优点:思路简单清晰易于理解. 缺点:计算量较大. [总结]此方法优点:计算量大幅度减小,紧扣问题入手,切入点准确. 缺点: ...

  7. 点到直线的距离公式和平行线的距离公式

    点到直线的距离公式 已知一个点 P ( x 0 , y 0 ) P(x_0,y_0) P(x0​,y0​)和直线 l : A x + B y + C = 0 l:Ax+By+C=0 l:Ax+By+C ...

  8. 使用向量的方法来计算点到直线的距离

    使用向量的方法效率更高,更简单. 首先要了解什么是向量,什么是向量的模 主要用到了解析几何里的几个公式 a * b = | a | * | b | * cos(x),其中x为向量a,b的夹角 | a ...

  9. java点到直线距离_求取点到直线的距离

    问题描述: 已知点P(px,py),直线L(P1,P2),求点P到L的距离. 首先,推导直线公式: 点$$P_1(x_1,y_1)$$, 点$$P_2(x_2,y_2)$$ 可知直线方程为: $$x( ...

  10. 点到点的距离、点到直线的距离、点是否在直线上

    C#代码实现点到点.点到直线的距离.点是否在直线上 1.点到点的距离 public static double DistanceP2P(double x1, double y1, double x2, ...

最新文章

  1. 在CentOS 6.3/6.5 64bit上为python 2.7.10安装pycurl模块
  2. 每天一点Linux --- 目录的可执行权限
  3. 050_Boolean对象
  4. 2018高中计算机会考知识点,2018高中物理会考知识点总结
  5. python中转义字符怎么用_python中的转义字符i
  6. 【unity3d--初始学习五--c#脚本对xml文件的创建和解析】
  7. C 语言实例 - 使用结构体(struct)
  8. Magento 创建优惠卷 Create unique coupon code in Magento
  9. py导入包异常跳出_14-0-包的介绍及使用
  10. 浏览器窗口可视区域大小相关方法
  11. mysql 5.7插入很慢_MySQL进阶——主从复制
  12. 高斯课堂数电讲义笔记_《高数上》讲义笔记【高斯课堂】 (1).pdf
  13. 编程15年,如何才能成不了高手?
  14. 不用加减乘除做四则运算
  15. 关于Windows10右键新建卡顿
  16. TCP与UDP 的区别
  17. 恒生电子面试过程纪录
  18. Python错误之 SyntaxError: invalid syntax的解决方法总结
  19. 用PS做淘宝宝贝详情页及如何切图导出
  20. sudo cd为什么不能够执行

热门文章

  1. 强化学习#code3
  2. C语言黑与白问题代码及解析(内附视频)
  3. 十分钟了结MySQL information_schema
  4. java实现将word转换pdf
  5. STM32-红外遥控
  6. HTML5-简易Canvas绘图板
  7. 关于全国大学生软件测试大赛总结与反思
  8. 形容等待时间长的句子_形容等待了很久的句子
  9. React的CRA脚手架的创建
  10. 手把手教你使用python的zipfile模块巧解word批量生成问题