码迷,mamicode.com
首页 > 其他好文 > 详细

已知直线上的两点 A(x1, y1), B(x2, y2) 和另外一点 C(x0, y0),求C点到直线的距离。

时间:2014-05-07 05:37:05      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:直线   向量   距离   

数学知识太差,一点点积累,高手勿喷。

1. 先求出AB向量
a = ( x2-x1, y2-y1 )

2. 求AB向量的单位方向向量
b = √((x2-x1)^2 + (y2-y1)^2))

a1 = ( (x2-x1)/b, (y2-y1)/b )

3.求出CA的法向向量(或CB的法向向量)
c = ( y0-y1, -(x0-x1) )

4. 距离 = AC法向向量与BC向量的单位方向向量的数量积
距离d = a1 * c = ( (x2-x1)(y0-y1) - (y2-y1)(x0-x1) ) / √((x2-x1)^2 + (y2-y1)^2))

参考http://zhidao.baidu.com/link?url=_p1KjVfPqY4ZnEf9h4GNR1OiwkoDrds_LfTCyZTTTo6sljXJP8i-tUtSHECt5_k8WwA0g04lkBUNrEGCz0hcUK
原文中还有第5步,我把第四步作了一些修改,感觉就够了。
其实我也不懂,特别是第四步为什么会得到距离?

请高手指点指正。
谢谢


ps: 判断垂足在线段内:

AC*AC - d*d < AB*AB && BC*BC - d*d < AB*AB

已知直线上的两点 A(x1, y1), B(x2, y2) 和另外一点 C(x0, y0),求C点到直线的距离。,布布扣,bubuko.com

已知直线上的两点 A(x1, y1), B(x2, y2) 和另外一点 C(x0, y0),求C点到直线的距离。

标签:直线   向量   距离   

原文地址:http://blog.csdn.net/hhhh63/article/details/25030143

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!