gpt4 book ai didi

c++ - 你如何计算两个矩形的重叠百分比?

转载 作者:可可西里 更新时间:2023-11-01 16:37:56 34 4
gpt4 key购买 nike

我编写了一个绘制各种屏幕 Sprite 的绘图函数。这些 Sprite 只能重叠到一个点。如果它们必须重叠太多,它们就会变得太模糊。因此,我需要检测这些 Sprite 何时重叠太多。幸运的是,问题得到了简化,因为 Sprite 可以被视为正交矩形。我想知道这些矩形重叠了多少。现在,我只是通过测试一个矩形中的每个像素以查看另一个矩形中是否包含它来暴力破解它。我计算这些并计算重叠百分比。我认为可能有更好的、更少蛮力的方法。我可以使用什么算法来确定这一点?

我正在使用 wxwidgets。

最佳答案

结果取决于你如何定义重叠百分比,为了保持对称,我会这样编码:

double CalculatePercentOverlap(const wxRect& rect1, const wxRect& rect2)
{
wxRect inter = rect1.Intersect(rect2);
if (inter.IsEmpty())
return 0;
return (double)(inter.GetWidth()*inter.GetHeight()) * 2.0 /
(double)(rect1.GetWidth()*rect1.GetHeight() +
rect2.GetWidth()*rect2.GetHeight());
}

关于c++ - 你如何计算两个矩形的重叠百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1440977/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com