【寒江雪】点到直线的最短距离

点到直线的最短距离

​ 根据直线的表示方式p = at + b,可以设一个点P(px,py),任意一点A(x0,y0)到点P的距离可以根据两点间距离公式求出。

D^2 = (px-x0)^2+(py-y0)^2

= (axt+bx-x0)^2+(ayt+by-y0)^2

= (ax^2+ay^2)t^2 + 2{ax(bx-x0)+ay(by-x0)}t+(x0^2+y0^2)

​ 然后根据对表达式求二阶导数,可以证明该函数存在最小值。

​ 令一阶导数等于零可以求得取最小值时,t的取值。将t带入可以计算出最短距离的平方。最后算得

t = {ax(x0-bx)+ay(y0-by)}/(ax^2+ay^2)

点到线段的最短距离

​ 根据点到直线的距离的计算方式,把线段看成是直线,最后计算出t,然后根据t的值将t缩小到[0,1]之间。

if t < 0
than t = 0
if t > 1
than t = 1

​ 这样就可以计算点到线段的最短距离了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值