已知两点坐标求其连线与指定点的距离
设点 A 为 (x1, y1),点 B 为 (x2, y2),点 C 为 (10, 0)。
首先我们需要求得点 A 和点 B 的连线斜率 k: k = (y2 - y1) / (x2 - x1)
由于点 A 和点 B 连线与点 C 的连线垂直,则两条连线的斜率之积为 -1: k * k1 = -1
其中 k1 为点 A 和点 B 的连线与点 C 的连线的斜率: k1 = (0 - y1) / (10 - x1)
代入上式,可得: (y2 - y1) / (x2 - x1) * (0 - y1) / (10 - x1) = -1
整理得: (y2 - y1) * (0 - y1) = - (x2 - x1) * (10 - x1)
化简得: y1^2 - y1 * y2 = x1^2 - x1 * x2 - 10 * x1 + x1 * x2
移项可得: y1^2 - x1^2 - 10 * x1 = y1 * y2 - x1 * x2
整理得: y1^2 - 10 * x1 - y1 * y2 = x1^2 - x2 * x1 + y1 * y2
再次移项可得: x1^2 - x2 * x1 + 10 * x1 = y1^2 + y1 * y2 - 10 * x1
整理得: x1 * (x1 - x2 + 10) = y1^2 + y1 * y2 - 10 * x1
最后得到: x1 = (y1^2 + y1 * y2) / (x1 - x2 + 10)
同理可得: x2 = (y1^2 + y1 * y2) / (x1 - x2 + 10)
将 x1 和 x2 代入其中一个点的坐标,可得: y1 = (y1^2 + y1 * y2) / (x1 - x2 + 10) - x1
因此,两点连线与 (10, 0) 的距离为: d = sqrt((x1 - 10)^2 + y1^2) 或者 d = sqrt((x2 - 10)^2 + y2^2)
原文地址: https://www.cveoy.top/t/topic/qaOx 著作权归作者所有。请勿转载和采集!