Java gwt-g2d:如何检测点是否在形状中?

Java gwt-g2d:如何检测点是否在形状中?,java,gwt,shape,point-in-polygon,Java,Gwt,Shape,Point In Polygon,我试图检测一个点是否在gwt-g2d形状内。 有人知道这是怎么可能的吗 我只能确定该点是否在上下文中的任何路径内 假设我有一个包含两个矩形(a和B)的上下文,并且想要确定鼠标位于哪个矩形中,我如何才能做到这一点 ________________________ | _______ _______ | | | | | | | | | A | | B | | | |_______| |_______| | |__________

我试图检测一个点是否在gwt-g2d形状内。 有人知道这是怎么可能的吗

我只能确定该点是否在上下文中的任何路径内

假设我有一个包含两个矩形(a和B)的上下文,并且想要确定鼠标位于哪个矩形中,我如何才能做到这一点

________________________ | _______ _______ | | | | | | | | | A | | B | | | |_______| |_______| | |________________________| ________________________ | _______ _______ | | | | | | | || A | | B || | |_______| |_______| | |________________________|
矩形只是示例,我还想确定点是否为复杂形状。

您可以查找问题。如果有很多多边形,人们也倾向于通过存储多边形的最左侧、右侧、底部和顶部点(或存储包围多边形的圆的半径和中心点)来缩小可能性因此,他们可以快速确定该点是否可能位于多边形内部。

经过尝试,我通过编辑gwt-g2d源找到了解决方案

gwt-g2d为每个曲面创建一个带有画布的div。 现在我更改了曲面的颜色,只创建了一个位置为“绝对”的画布。现在我只需创建多个画布并使用其函数IsPointInPath

Surface.java中的技术:

    public Surface(int width, int height) {
            canvas = Document.get().createElement("canvas").cast();
            setElement(Document.get().createDivElement());
            getElement().appendChild(canvas);
            canvasInitializer.init(canvas, width, height);
            setStylePrimaryName("g2d-Surface");
            this.width = width;
            this.height = height;
            context = canvas.getContext2D();
    }
致:


谢谢你的提示,但我正在搜索一个内置函数,因为如果我通过g2d添加一个弧,它可能会有我的Claculate弧以外的其他点。
public Surface(int width, int height) {
    canvas = Document.get().createElement("canvas").cast();
    canvas.setAttribute("style", "position:absolute;");
    setElement(canvas);
    canvasInitializer.init(canvas, width, height);
    setStylePrimaryName("g2d-Surface");
    this.width = width;     
    this.height = height;
    context = canvas.getContext2D();
}