已知矩形宽高求过其底部两角的圆直径的更优计算方法咨询
结论
你的推导逻辑是正确的,确实存在更简洁、计算效率更高的等价计算方式。

注意:圆的所有参数均未知,仅已知矩形的宽度和高度。
公式正确性验证
你给出的公式是针对「过矩形底部两个端点、且与矩形顶边相切的圆」的直径计算,通过几何推导可以验证完全正确:
设矩形宽度为W、高度为H,圆半径为R:
- 圆过底边两个端点,圆心必然在矩形的垂直中线上,横坐标为
W/2 - 圆与顶边相切,圆心到顶边的距离等于半径,因此圆心纵坐标为
H - R - 代入左下角点(0,0)到圆的方程:
(W/2)² + (H-R)² = R²
展开化简后得到的直径表达式和你的推导结果完全匹配。
更简洁高效的计算方式
你原来的公式引入了中间变量X=W/H,可以直接消去中间变量得到无额外变量定义、计算步骤更少的表达式:
Diameter = H + (W * W) / (4 * H)
效率对比
- 原公式计算流程:2次除法 + 1次乘法 + 1次加法,需要额外存储中间变量X
- 优化后公式计算流程:1次乘法 + 1次除法 + 1次加法,无额外中间变量开销
优化后的写法可读性更强,批量计算场景下性能有小幅提升,数值稳定性和原有公式完全一致。
适用范围补充
你提到的「仅适用于宽度大于高度的场景」属于误区,该公式对任意正的W、H取值都成立,哪怕矩形高度大于宽度,也可以正确计算出符合要求的圆直径。
内容的提问来源于stack exchange,提问作者oldboy
相关产品推荐
相关产品推荐

