检测是否可以将一个矩形放入另一个矩形

cui*_*ing 11 math rect

这个问题不同于测试一个rect是否在另一个rect中.

已知信息是两个长度的边长.

如何计算一个矩形是否可以放入另一个矩形?

可以直接放入rect b

ars*_*jii 8

这是一个很好的问题!当且仅当一个这些条件满足做一个小矩形边pq(p >= q),以符合完全陷入了更大的一个边矩形ab(a >= b):

在此输入图像描述

要么

在此输入图像描述

请参阅参考.


所以,如果我们有变量a,b,p,q,我们可以检查是否这种矩形安排将有可能通过评估:

(p <= a && q <= b) || (p > a &&
                        b >= (2*p*q*a + (p*p-q*q)*sqrt(p*p+q*q-a*a)) / (p*p+q*q))
Run Code Online (Sandbox Code Playgroud)

编辑:感谢@amulware在他的评论中发布这个备用版本:

在此输入图像描述

  • 在某些情况下,代码不起作用。这是一个固定版本: `q &lt;= b &amp;&amp; (p &lt;= a || b * (p*p+q*q) &gt;= (2*p*q*a + (p*pq*q)*sqrt (p*p+q*qa*a)))` (2认同)