JS实现:圆心在矩形左下角时计算圆边界矩形宽度
问题说明
给定任意矩形(覆盖正方形、横向矩形、纵向矩形三类场景),圆形的圆心固定在矩形左下角位置,需要用JavaScript计算圆的边界矩形宽度,要求圆的半径长度恰好能触碰到原矩形的右上角。
需要实现兼容三类矩形场景的JS函数,入参为原矩形的宽度width和高度height,函数基础框架如下:
function getCircleWidth(width: number, height: number): number { // 在此处返回圆的边界矩形宽度 }
实现思路
圆心在原矩形左下角、圆周恰好碰到原矩形右上角时,圆的半径就等于原矩形左下角到右上角的对角线长度,根据勾股定理即可算出半径值。
圆的边界矩形是和圆外切的正方形,边长等于圆的直径(即半径的2倍),因此直接用对角线长度乘2就能得到边界矩形的宽度,该逻辑对三类矩形场景全部适用。
最终代码
function getCircleWidth(width: number, height: number): number { return Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)) * 2; }
参考示意图

内容的提问来源于stack exchange,提问作者noahmason
相关产品推荐
相关产品推荐

