ポイントとして保存されている長方形のリストがあります。現在、データは次のようになっています。
boxes = [{'p1': (0,0), 'p2': (100,20)},
{'p1': (5,5), 'p2': (15,15)},
{'p1': (20,5), 'p2': (30,15)},
{'p1': (35,5), 'p2': (45,15)},
{'p1': (70,5), 'p2': (80,15)}]
長方形が別の長方形に含まれているかどうかをテストする基本的な関数もあります。
def isChild(b1,b2):
return (b1 != b2 and
(b1['p2'][0]-b1['p1'][0] * b1['p2'][1]-b1['p1'][1]) > (b2['p2'][0]-b2['p1'][0] * b2['p2'][1]-b2['p1'][1]) and
b1['p1'][0] < b2['p2'][0] and
b1['p2'][0] > b2['p1'][0] and
b1['p1'][1] < b2['p2'][1] and
b1['p2'][1] > b2['p1'][1])
長方形のセットとその子を作成したいのですが、どのように保存すればよいかわかりません。私はこのようなことを考えています:
[{'p1': (0,0),
'p2': (100,20),
'children': [{'p1': (5,5), 'p2': (15,15)},
{'p1': (20,5), 'p2': (30,15)},
{'p1': (35,5), 'p2': (45,15)},
{'p1': (70,5), 'p2': (80,15)}]}]
これのコンテキストは、ボックスがWebページ上の要素を表すということです。データ構造は基本的なマークアップを生成することを目的としているため、上記の構造は次のようになります。
<div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
- ソース/ゴールのデータ構造はこれに適していますか?そうでない場合は、何ですか?
- ソースからゴールに到達するにはどうすればよいですか?
- 友人がr-treeの使用を提案しました。それはここで意味がありますか?