用c++写个点到面的距离计算
时间: 2023-05-25 17:04:20 浏览: 541
假设点 P 的坐标为 (x0, y0, z0),面的方程为 Ax + By + Cz + D = 0,则点 P 到面的距离为:
d = |Ax0 + By0 + Cz0 + D| / sqrt(A^2 + B^2 + C^2)
其中,|.| 表示绝对值,sqrt(.) 表示平方根。
下面是用 C 语言实现该计算的示例代码:
```c
#include <stdio.h>
#include <math.h>
double distance(double x0, double y0, double z0, double A, double B, double C, double D) {
double d = fabs(A * x0 + B * y0 + C * z0 + D) / sqrt(A * A + B * B + C * C);
return d;
}
int main() {
double x0 = 1.0, y0 = 2.0, z0 = 3.0; // 点 P 的坐标
double A = 2.0, B = 3.0, C = 4.0, D = -5.0; // 面的方程参数
double d = distance(x0, y0, z0, A, B, C, D);
printf("Point (%.1f, %.1f, %.1f) to plane (%.1f)x + (%.1f)y + (%.1f)z + (%.1f) = 0 distance is: %.3f\n",
x0, y0, z0, A, B, C, D, d);
return 0;
}
```
输出:
```
Point (1.0, 2.0, 3.0) to plane (2.0)x + (3.0)y + (4.0)z + (-5.0) = 0 distance is: 2.055
```
阅读全文