0

我需要在 Java 的画布上绘制一些 2D 对象(矩形、类似窗口)

主要目标是将 2D 坐标映射到对象,例如识别单击了哪个对象。

问题:
保持 2D 对象大小/位置的常用方法是什么。(哪些数据结构等)
应该有一种有效的方式来说明哪个对象位于坐标 x,y

4

2 回答 2

1

通常你会在这里使用“分而治之”的策略:你的视图(矩形)包含对该视图中视图的引用,而不是将所有视图放在一个大数组中。然后从左到右对它们进行排序,您可以应用递归二进制搜索来查找您正在单击的视图。

不知道如何在 Java 中做到这一点,但 C++ 中一个非常简单的类定义是:

class MyView {
    std::vector<MyView*> subviews;
    int x;
    int y;
    int width;
    int height;
};

搜索您单击的视图非常简单快捷。

于 2012-11-27T13:13:35.310 回答
0

我一直在寻找 - 是一个 四叉树 对于不太复杂的结构,一个数组会做。

于 2012-11-30T11:31:51.753 回答