【问题标题】:Convert a list java.awt.geom.Point2D to a java.awt.geom.Area将列表 java.awt.geom.Point2D 转换为 java.awt.geom.Area
【发布时间】:2009-09-02 18:16:16
【问题描述】:

我有一组点,我想在 Java 中将它们变成一个封闭的多边形。我目前正在尝试使用 java.awt.geom.Point2D 和 java.awt.geom.Area 但不知道如何将一组点变成一个区域。

我想我可以根据点定义一组 Line2D,然后将它们添加到区域中,但这是很多工作而且我很懒惰。那么有没有更简单的方法。

问题是我有一个纬度/经度坐标列表,并且想要建立一个可用于命中测试的区域。

非核心 Java 库也是可能的。

更新,我使用 java.awt.Polygon 进行了研究,但它只支持整数,并且我正在使用双精度来操作坐标。

【问题讨论】:

    标签: java awt


    【解决方案1】:

    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4077518

    听到“客户”了吗?您应该使用 GeneralPath,尽管自 1990 年代后期以来没有 Polygon2D 显然是 API 中的一个怪物卡车大小的漏洞。

    【讨论】:

    【解决方案2】:

    如果您实际使用大地纬度/经度值,您实际上可以使用OpenMap 来完成其中的一些工作。我刚刚花了一些时间使用该 API 中的Geo class 来围绕由纬度/经度点多边形定义的区域反弹一个对象。有intersection calls,所有的数学运算都是球形完成的,因此就投影而言,这些点更正确。

    【讨论】:

      【解决方案3】:

      最简单(也是最懒惰)的做法是为 X、Y 坐标值的最大值和最小值的点创建一个边界框。

      如果您需要更紧密的拟合,而不是设计自己的算法,这可能是一个不错的起点:

      【讨论】:

        猜你喜欢
        • 2011-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多