【问题标题】:Creating a Tree from a List of Rectangles从矩形列表创建树
【发布时间】:2010-09-12 23:23:31
【问题描述】:

这可能是一个愚蠢的问题,但什么都不会立即浮现在脑海中。给定一个列表R 的二维矩形(xywh),使得任何给定的矩形要么完全在任何其他矩形内部,要么完全在任何其他矩形之外,确定最有效的方法是什么? R 中每个矩形的立即封闭矩形 p?目前我将Ry排序,然后x,然后遍历每一对(ab)并测试a是否是b的孩子。这不仅效率不高,而且也不能正常工作:我认为由于R 已经排序,找到的最后一个父级应该是立即封闭的父级,但这似乎并不成立。我的推理有问题吗?如果没有,我会发布代码。

【问题讨论】:

  • 您的实际问题是什么?我想我知道你在说什么,但我无法确定你希望你的代码对你的矩形列表做什么。您是否希望您的代码找出矩形的层次结构。如果是这样,你将如何(在数据中)reperesent?

标签: c++ graphics tree hierarchy


【解决方案1】:
  1. (x+y)排序。
  2. 从排序列表的开头开始,抓取一个矩形 Q。
  3. 为该矩形计算 (x+y+w+h)
  4. 对于矩形 Q 之后的部分列表中的每个矩形 R,并且具有 x+y for R (x+y+w+h) of Q,检查 R 是否在 Q 的范围内。如果是,则将 Q 设置为R,覆盖任何先前设置的父级。
  5. 重复列表。

【讨论】:

  • 这行得通!非常感谢。事实证明,我的实现实际上离目标不远了。
猜你喜欢
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
  • 2012-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-08
相关资源
最近更新 更多