用Java实现求两条线的交点和求点到线的距离两个功能
时间: 2023-06-20 18:09:44 浏览: 50
求两条线的交点:
假设有两条直线分别为L1: y1 = k1 * x + b1和L2: y2 = k2 * x + b2,如果这两条直线有交点,则它们的交点一定满足下面这个方程组:
k1 * x + b1 = k2 * x + b2
=> x = (b2 - b1) / (k1 - k2)
=> y = k1 * ((b2 - b1) / (k1 - k2)) + b1
Java代码:
```
public static Point2D getIntersectionPoint(double k1, double b1, double k2, double b2) {
if (k1 == k2) {
return null; // 两条直线平行
}
double x = (b2 - b1) / (k1 - k2);
double y = k1 * x + b1;
return new Point2D.Double(x, y);
}
```
求点到线的距离:
假设有一条直线L: y = k * x + b,以及一个点P(x0, y0),那么点P到直线L的距离可以使用下面这个公式来计算:
d = |k * x0 - y0 + b| / sqrt(k^2 + 1)
Java代码:
```
public static double getDistanceFromPointToLine(double x0, double y0, double k, double b) {
return Math.abs(k * x0 - y0 + b) / Math.sqrt(k * k + 1);
}
```
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)