代码之家  ›  专栏  ›  技术社区  ›  nanda

Java[关闭]几何库

  •  31
  • nanda  · 技术社区  · 16 年前

    有没有用于Java的几何库?我正在寻找解决方案来获得两个几何对象之间的交点。

    6 回复  |  直到 9 年前
        1
  •  31
  •   arghtype Castaldi    9 年前

    JTS 是您最好的免费开源选项。您在JTS中寻找的方法是 here

    至于商业选择,你有 ESRI's Java JNI version 他们的ArcObjects库有一个非常强大的几何库。ESRI库上的接口被调用 ITopologicalOperator

    如果您所要做的只是几何运算,那么JTS是您的最佳选择——它是一个优秀的库,有许多不同语言的端口。另一方面,如果您正在寻找一个完整的地理信息系统,该系统具有复杂的符号、支持地理信息系统工作流和多用户编辑、打印等功能,那么我将开始查看ESRI库。

        2
  •  6
  •   David Segonds    16 年前

    你应该看看这个包裹 java.awt.geom 是JDK的一部分。

    尤其是查看 java.awt.geom.Area 类,它允许您在两个 Shape S.

    编辑

    据我所知,找到交叉点是非常重要的,因为您需要根据所分析的形状应用不同的算法。例如,给出了两圆相交的算法 here 然而,计算两条贝塞尔曲线之间的内积的算法是完全不同的。( here )

    编辑2

    一个建议是:你可以调查 PathIterator 类,它将形状路径的描述作为段序列返回。尤其是退房 FlatteningPathIterator 将任何曲线折叠成多条直线。一旦你的路径被简化为直线,计算交叉点将很简单…虽然很明显这是一个近似的情况下,你的形状包含曲线。

        3
  •  6
  •   WindRider    15 年前

    出于非地理信息系统的目的,我建议 贾瓦格姆 图书馆。它使用了欧几里得的几何抽象,大多数人从学校知道。这个项目最近没有活动,但我发现它结构良好,易于使用。他们说它支持布尔运算,但从未测试过它们的工作性能。Euclid是一个功能丰富的测试应用程序,它是由同一位作者开发的。 你可以试着用它,但前提是你确信它对你有用。

    http://sourceforge.net/projects/geom-java/

        4
  •  4
  •   iny    14 年前

    我发现JTS已经易手,或者改变了家庭网站,或者其他什么。可以在此处找到更新的版本: http://maven.geotoolkit.org/com/vividsolutions/jts/1.10/

    编辑:这可能是它的新主页: http://tsusiatsoftware.net/jts/main.html

        5
  •  2
  •   codekaizen    16 年前

    JTS- Java拓扑套件是最好的。

    http://www.vividsolutions.com/jts/jtshome.htm

    它是自由的、快速的、健壮的,并且可以处理退化交叉点。

        6
  •  0
  •   ratty    16 年前

    http://edndoc.esri.com/arcobjects/9.2/Java/java/library_reference/Geometry/Geometry_overview.htm

    尝试此链接此链接包含有关几何图形库的完整详细信息…..