相关疑难解决方法(0)

如何确定2D点是否在多边形内?

我正在尝试在多边形算法中创建一个快速 2D点,用于命中测试(例如Polygon.contains(p:Point)).对于有效技术的建议将不胜感激.

graphics performance polygon collision-detection point-in-polygon

473
推荐指数
15
解决办法
26万
查看次数

Android中多边形点的测试

前几天我用Java编写了一个类来计算a point(X,Y)是否在多边形内部.(XYdouble的,因为将地理坐标).

我知道,Java有类Polygon,但我不得不使用Path2DPoint2D,因为Polygon不允许double的,只是整数:(

一旦我完成了多边形Path2D,我就使用了方法contains(Path2D有了它),我的问题就解决了.

但现在,我想导入到Android,问题出在这里,因为Path2D需要导入:

import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
Run Code Online (Sandbox Code Playgroud)

并且在Android中不存在awt,所以我无法使用.

那么,有没有类似于Path2D那种contains方法的类?或者我必须自己计算?

以下是我在Java中使用的方法Path2D:

private void ConstructPolygon(Vector<Point2D> coodinates)
{       
    this.polygon.moveTo(coodinates.get(0).getX(), coodinates.get(0).getY());        

    //System.out.println(coodinates.get(0).getX() + "   " + coodinates.get(0).getY());
    //System.out.println("asda");

    for(int i = 1; i < this.num_points; i++)
    {
        //System.out.println(coodinates.get(i).getX() + "   " + coodinates.get(i).getY());
        this.polygon.lineTo(coodinates.get(i).getX(), coodinates.get(i).getY());
    }
    this.polygon.closePath();
}
public boolean InsideCity(Point2D …
Run Code Online (Sandbox Code Playgroud)

java android point polygon

11
推荐指数
4
解决办法
2万
查看次数

查找Android中路径中包含的点

他们是否有理由决定不在Android中添加contains方法(针对Path)?

我想知道我在Path中有什么观点,并希望它比在这里看到的更容易:

如何判断闭合路径是否包含给定点?

我是否更好地创建一个ArrayList并将整数添加到数组中?(我只在控制声明中检查一次点数)即.if(myPath.contains(x,y)

到目前为止,我的选择是:

  • 使用区域
  • 使用ArrayList
  • 扩展课程
  • 你的建议

我只是在寻找最有效的方法

java android contains path

9
推荐指数
3
解决办法
9250
查看次数

将touchListener添加到路径对象

我有一个画布,我设置了一条路径

Path path = new Path();
path.moveTo(1, 1);
path.lineTo(90, 1);
path.lineTo(90, 60);
path.lineTo(1, 60);

canvas.drawPath(path,p);
Run Code Online (Sandbox Code Playgroud)

现在我想向这个路径对象实现一个触摸侦听器.

我在自定义ImageView上实现了缩放选项,并在此自定义ImageView的onDraw方法的画布上绘制了这些线条.所以我不能通过检查用户触摸的坐标来做到这一点.

我知道路径对象不是View Class的子节点,因此我无法在其中实现touchListner.但我真正需要的是类似的东西

path.setOnTouchListener(myTouchListner);
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何实现它?任何帮助表示赞赏.

android ontouchlistener android-canvas

9
推荐指数
1
解决办法
313
查看次数