使用c++编写一个函数,利用两个点创建一条直线,判断第3个点到直线的距离
时间: 2024-02-20 08:58:30 浏览: 18
好的,下面是一个实现上述功能的C++函数:
```cpp
#include <cmath>
// 定义一个表示二维点的结构体 Point
struct Point {
double x;
double y;
};
// 计算两点之间的距离
double distance(Point p1, Point p2) {
double dx = p2.x - p1.x;
double dy = p2.y - p1.y;
return std::sqrt(dx * dx + dy * dy);
}
// 计算一个点到直线的距离
double distanceToLine(Point p, Point lineStart, Point lineEnd) {
double lineLength = distance(lineStart, lineEnd);
double u = ((p.x - lineStart.x) * (lineEnd.x - lineStart.x) +
(p.y - lineStart.y) * (lineEnd.y - lineStart.y)) /
(lineLength * lineLength);
Point intersectionPoint = {lineStart.x + u * (lineEnd.x - lineStart.x),
lineStart.y + u * (lineEnd.y - lineStart.y)};
return distance(p, intersectionPoint);
}
```
这个函数接收三个参数:
- `p`:表示需要计算距离的点
- `lineStart`:表示直线的起点
- `lineEnd`:表示直线的终点
函数返回一个 `double` 类型的值,表示第3个点到直线的距离。