我正在尝试检测点是否在gwt-g2d形状内。 有人知道这是怎么回事吗?
我可以确定该点是否在上下文中的任何路径中。
假设我有一个带有两个矩形(A& B)的上下文,并且想要确定鼠标在哪个矩形中,我该怎么做?
________________________ | _______ _______ | | | | | | | | | A | | B | | | |_______| |_______| | |________________________|
矩形只是示例,我还想确定这个点是否是复杂的形状。
答案 0 :(得分:0)
您可以查找point-in-polygon问题。如果你有很多多边形,人们也倾向于通过存储多边形的左,右,底部和最顶点(或存储包围多边形的圆的半径和中心点)来缩小可能性,以便它们可以快速确定该点是否甚至可能在多边形内。
答案 1 :(得分:0)
gwt-g2d为每个Surface创建一个带有画布的div。 现在我将Surface更改为仅创建一个position:absolute的画布。现在我只创建多个画布并使用它的函数IsPointInPath。
Surface.java中的Chnages:
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();
}
TO:
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();
}