我有一组盒子对象,由它们的 (x,y,width,height) 属性定义,如下所示:
框 Q 锚定在角点 C。我如何以编程方式扩展框 Q 以占用它拥有的所有可用空间,同时保持其纵横比?
通过将框扩展为非常大(从右上角)然后对齐到最远框的顶部边缘(在本例中为 5),我有一些运气。如果此时其他框与 Q 重叠,我删除最远的框 (5) 并重复(对齐到 4 的顶部边缘),直到没有框重叠。这种方法的问题在于,一个框可能与 Q 重叠(下图中的框 2),但是当我缩放以满足其顶部边缘时,它不再被包含,如下所示:
任何关于方法的想法将不胜感激,
乔什