最近在做js canvas绘图需求时,遇到一个矩形图形重叠逻辑判断问题。
一个任意矩形内部,有一个任意等比缩放的矩形,如何判断宽和高那个先溢出外层的矩形?宽和高那个先贴到边上?
可以根据两个矩形的比例关系来判断宽和高那个先溢出。首先计算出两个矩形的宽高比,然后比较它们的大小关系。
若外层矩形的宽高比大于内层矩形的宽高比,则内层矩形先溢出的是宽;反之,先溢出的是高。
具体实现的代码示例如下:
function checkOverflow(outerWidth, outerHeight, innerWidth, innerHeight) {
// 父矩形比例
let outerRatio = outerWidth / outerHeight;
// 子矩形比例
let innerRatio = innerWidth / innerHeight;
if (outerRatio > innerRatio) {
// 宽先溢出
return "width";
} else {
// 高先溢出
return "height";
}
}
亲测实验可以
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: AI怎么把游戏变好玩?米哈游出手了米哈游新游植入生图AI游戏AI在AlphaGo后时代变强AIGC带来游戏体验升级新机会
《原神》发布两年半后,游戏新贵米哈游终于出新,上线了《崩坏:星穹铁道》。新游戏的一大亮点是内置了一个“图生图”的AIGC工具,用户可上传任何图片,生成对应风格的游戏角色“三月七”。 广大玩家脑洞大开,短短一周时间生成了近1000万张图片。这还不过瘾,有用户希望…