是否有可用於Java的幾何庫?我正在尋找解決方案來獲取兩個幾何對象之間的交點。用於Java的幾何庫
回答
JTS是您最好的免費開源選項。您在JTS尋找的方法是here
至於商業選擇,你必須擁有一個非常強大的幾何圖形庫自己的ArcObjects庫ESRI's Java JNI version。在ESRI的庫的接口稱爲ITopologicalOperator
如果你正在嘗試做的是幾何運算,JTS是你最好的選擇 - 這是一種具有許多港口不同語言的優秀庫。另一方面,如果您正在尋找一個完成複雜符號系統,支持GIS工作流程和多用戶編輯,打印等的GIS系統,那麼我會開始考慮ESRI庫。
你應該看看它的軟件包java.awt.geom
,它是JDK的一部分。
特別檢查java.awt.geom.Area
類,它允許您執行兩個Shape
之間的相交操作。
編輯
尋找交叉點是不平凡的,據我所知,因爲你需要應用不同的算法,這取決於您要分析的形狀。例如,給出了兩個圓之間的交點的算法here,而計算兩條貝塞爾曲線之間的交點的算法是完全不同的(here)。
EDIT 2
一個建議:你可以看着PathIterator
類,它返回一個形狀的路徑的描述爲段的序列。特別檢查一下FlatteningPathIterator
,它會將任何曲線摺疊成多條直線。一旦你的路徑被縮減爲直線,計算交點將是簡單的...雖然顯然這是一個近似值,如果你的形狀包含曲線。
http://edndoc.esri.com/arcobjects/9.2/Java/java/library_reference/Geometry/Geometry_overview.htm
嘗試此鏈接此鏈接包含有關geomentry庫的全部細節.....
ESRI? 5000美元只是爲了得到一個交叉點? – codekaizen 2010-01-29 07:42:00
這是來自Esri的免費Java geoemtry庫:https://github.com/Esri/geometry-api-java – 0kcats 2016-02-18 15:40:19
我發現JTS已經改變了手,或者改變了家庭網站,或者什麼的。較新的版本可以在這裏找到:http://maven.geotoolkit.org/com/vividsolutions/jts/1.10/
編輯:這可能是其新主頁:http://tsusiatsoftware.net/jts/main.html
對於非GIS目的,我可以建議javaGeom庫。它使用大多數人從學校知道的歐幾里德幾何抽象。這個項目沒有最近的活動,但我覺得它結構合理,易於使用。他們說它支持布爾操作,但從未測試過它們的工作效果。有一個功能非常豐富的測試應用程序,命名爲Euclid,它是由同一作者開發的。 你可以嘗試使用它,但只有當你確定它會爲你工作。
看起來他們已經在2011年末發佈了3個版本,經過長時間的不活動之後。此外,圖書館看起來比JTS更加緊湊 - 不要讓事情膨脹太多! – rescdsk 2012-01-19 15:16:02
檢查[這個答案](http://gamedev.stackexchange.com/a/114761/36681),我發現了很多選擇 – 2016-01-12 22:29:56
- 1. 用於Java/Python的球形幾何庫
- 2. 用於Java的抽象2D幾何庫
- 3. Java 3D幾何庫
- 4. 是否有Java的幾何庫? (非JTS)
- 5. 用於Java的SQL Server庫
- 6. 用於Java的XML庫
- 7. 用於Java自省的庫
- 8. 用於Java的PAR2庫
- 9. 適用於Java的UPnP庫
- 10. 用於圖形的Java庫
- 11. 用於Java的SNMP庫
- 12. 用於zip64的java庫
- 13. 用於Java的PDF庫
- 14. 用於java的WebP庫?
- 15. .NET幾何庫
- 16. 幾何庫
- 17. .NET幾何庫
- 18. 如何使用java在Postgis數據庫中存儲幾何點
- 19. 用於模擬幾何點
- 20. Java庫,用於分析HTML
- 21. C++中的幾何庫
- 22. 哪個Haskell庫用於計算機圖形幾何?
- 23. 用於Python的3D幾何包
- 24. 用於幾何字段的AdminModelConvertor(LON/LAT)
- 25. 用於Java的庫ZMQ不起作用
- 26. TCL如何使用數學::幾何庫
- 27. 適用於java的好的SOAP庫(tomcat)
- 28. 用於Java的類似readline的庫
- 29. 調解 - 任何基於Java的庫?
- 30. 任何3D幾何算法庫在Java中?
您正在使用的空間的尺寸是多少? 2D,3D? – 2010-01-25 15:18:17
2D ............. – nanda 2010-01-25 15:23:04
Off topic?你會在開玩笑吧。然後關閉所有的Java問題。 – Stepan 2016-10-29 17:11:56