php计算二维点距需先校验输入是否为有效数字,再用勾股定理sqrt(max(0, ($x2-$x1)2 + ($y2-$y1)2))计算,最后number_format保留两位小数输出。

要计算二维平面上两点之间的距离,PHP 可以直接使用勾股定理:若两点坐标为 $(x_1, y_1)$ 和 $(x_2, y_2)$,则距离为 $\sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}$。PHP 提供了 sqrt() 和 pow()(或直接用乘方运算符 **)来轻松实现。
输入两点坐标并验证有效性
程序应先接收用户输入的四个数值($x_1, y_1, x_2, y_2$),并判断是否为合法数字。可使用 is_numeric() 检查,避免传入空值、字符串或 NaN 导致计算异常。
- 建议用 floatval() 统一转为浮点数,兼容整数和小数输入
- 若任一参数非数字,可提前返回提示,如:“请输入有效的数字坐标”
使用勾股定理计算欧氏距离
核心计算简洁明了,推荐使用幂运算符提升可读性:
- $dx = $x2 - $x1;
- $dy = $y2 - $y1;
- $distance = sqrt($dx ** 2 + $dy ** 2);
相比 pow($dx, 2),** 更直观;sqrt() 是标准库函数,无需额外引入。
格式化输出结果(保留合适小数位)
距离通常不需要过高精度,用 number_format($distance, 2) 保留两位小数较合理;若需更高精度,可改用 round($distance, 4)。
- 注意:number_format 返回字符串,如需后续计算请保留原始浮点值
- 示例输出:“两点间距离为:5.66”
不复杂但容易忽略的是输入校验与浮点误差处理——实际应用中,极小的负数平方根(如因精度导致 $dx**2 + $dy**2 ≈ -0.0000001$)可能使 sqrt() 返回 NAN,加一层 max(0, ...) 更健壮:sqrt(max(0, $dx ** 2 + $dy ** 2))。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











