2016-07-22 374 views

回答

1

最明显的解决方案,如果不是太慢,是定义为rect1.contains(rect2)

rect1.x <= rect2.x && rect1.y <= rect2.y && rect1.x + rect1.width >= rect2.x + rect2.width && rect1.y + rect1.height >= rect2.y + rect2.height 

,然后检查每个矩形列表,看它是否包含任何他人。 (不检查其对自身,尽管!)

+1

是... *任何*'rectangle'类,任何你找到它的地方,都应该配备基本的基元,如重叠或遏制。通过一切手段,Hypnoz应该*“找到一个*并且只是使用它”。 ###在实施你的建议时,代码必须记住忽略测试以查看矩形是否与自身重叠!* *(在那里,是否......)* –

+2

我不认为代码是正确的。如果'rect2.x == rect1.x + rect1.width - 1'和'rect2.width == 2',那么您的条件返回true,但不包含rect2(跨越右边框)。 –

+1

您需要确保'rect2.x + rect2.width <= rect1.x + rect1.width'。对于y维度也是类似的。 –

相关问题