我需要在java(矩形,类似窗口)的画布上绘制一些2D对象
主要目标是将2D坐标映射到对象,例如识别点击了哪个对象。
问题:
维护2D对象大小/位置的常用方法是什么。 (哪些数据结构等)
应该有一种有效的方式来说明,哪个对象位于坐标x,y
答案 0 :(得分:1)
通常,您在此处使用“分而治之”策略:您的视图(矩形)包含对该视图中视图的引用,而不是将所有视图放在一个大数组中。然后从左到右排序它们,您可以应用递归二进制搜索来查找您要点击的视图。
不知道如何在Java中这样做,但C ++中一个非常简单的类定义是:
class MyView {
std::vector<MyView*> subviews;
int x;
int y;
int width;
int height;
};
搜索您单击的视图非常简单快捷。
答案 1 :(得分:0)
我在寻找什么 - 是Quadtree 对于不那么复杂的结构,Array会这样做。