有哪些稳定维护的Java二维向量(几何方向)开源库?
以下是目前稳定、社区认可度高、仍在持续维护的可选方案,适配SVG场景的几何计算需求:
Apache Commons Math
Apache官方维护的通用数学库,经过工业级稳定性验证,应用范围极广。其org.apache.commons.math3.geometry.euclidean.twod包下的Vector2D类完全覆盖原javax.vecmath.Vector2d的所有基础能力,包括向量加减、点积/叉积、归一化、距离计算、旋转变换等,同时配套完善的2D几何工具集,支持线段相交、多边形包含判断等SVG场景常用的计算能力,API设计成熟,维护节奏稳定。JTS (Java Topology Suite)
业界最主流的2D空间几何计算库,长期活跃维护,适合需要处理复杂SVG几何逻辑的场景。除了基础向量运算能力外,原生支持多边形布尔运算、路径裁剪、缓冲区生成、拓扑关系判断等高阶能力,完全匹配SVG路径、图形的复杂操作需求,大量图形、GIS类项目都在使用该库作为底层几何计算支撑。libGDX Math 模块
可单独引入的轻量级高性能数学组件,无需依赖完整libGDX框架。其com.badlogic.gdx.math.Vector2类API设计简洁易用,性能面向高频计算场景做了大量调优,内置投影、线性插值、坐标变换等图形学常用工具方法,非常适合需要做SVG动画、坐标变换的场景,目前社区活跃,版本更新持续。JDK原生
java.awt.geom.Point2D.Double
如果你的需求非常基础、不想引入第三方依赖,可以用JDK自带的Point2D类实现简单的2D向量存储和基础计算,缺点是原生提供的运算方法极少,大部分逻辑需要自行封装。
选型建议
如果仅需要基础向量运算,优先选Apache Commons Math;如果需要处理复杂的几何拓扑、路径操作,直接选JTS;如果对性能要求高、需要做动画类计算,优先选libGDX的独立Math模块。
内容的提问来源于stack exchange,提问作者Jouffan

