python代码计算距离直线距离为distance的两个点
时间: 2023-07-30 19:10:15 浏览: 91
假设直线方程为ax+by+c=0,两点分别为(x1,y1)和(x2,y2),可以使用以下代码计算它们到直线的距离:
```python
import math
def distance_to_line(a, b, c, x1, y1, x2, y2):
# 计算直线的斜率
k = -a / b if b != 0 else math.inf
# 计算直线的截距
b = -c / b if b != 0 else math.inf
# 计算两点之间的距离
d = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
# 计算两点连线的斜率
k1 = (y2 - y1) / (x2 - x1) if x2 != x1 else math.inf
# 计算两点连线的截距
b1 = y1 - k1 * x1 if x2 != x1 else x1
# 计算交点的坐标
x = (b - b1) / (k1 - k) if k1 != k else x1
y = k * x + b
# 计算距离
distance = abs((y2 - y1) * x - (x2 - x1) * y + x2 * y1 - y2 * x1) / d
return distance
```
在调用函数时,需要传入直线的系数a、b、c,两点的坐标(x1, y1)和(x2, y2),以及距离distance。例如,计算直线2x + 3y + 4 = 0到点(1, 1)和(2, 2)的距离为3的代码如下:
```python
a, b, c = 2, 3, 4
x1, y1 = 1, 1
x2, y2 = 2, 2
distance = 3
print(distance_to_line(a, b, c, x1, y1, x2, y2))
```
输出结果为2.8284271247461903,即点(1, 1)和(2, 2)到直线2x + 3y + 4 = 0的距离约为2.83。
阅读全文