你能用Java做向量加法吗?

你能用Java做向量加法吗?,java,math,vector,Java,Math,Vector,我知道java中有一个“Vector”类,但它似乎只是一个更简单的ArrayList类型的处理,而不是一个实际的数学向量(如大小和方向) 在Java中有没有方法进行向量操作(特别是加法)?还是我必须自己实现它或使用第三方模块?是的,为了执行向量运算,您必须编写一个库(或使用第三方库)。我认为没有内置的方法来进行向量加法,然而,我发现Java3D描述了如何做到这一点。Java3D有各种形式的向量类(Vector3d、Vector3f、Vector4d等)。当然,Java3D现在有点危险,因为它似乎

我知道java中有一个“Vector”类,但它似乎只是一个更简单的ArrayList类型的处理,而不是一个实际的数学向量(如大小和方向)


在Java中有没有方法进行向量操作(特别是加法)?还是我必须自己实现它或使用第三方模块?

是的,为了执行向量运算,您必须编写一个库(或使用第三方库)。

我认为没有内置的方法来进行向量加法,然而,我发现Java3D描述了如何做到这一点。

Java3D有各种形式的向量类(Vector3d、Vector3f、Vector4d等)。当然,Java3D现在有点危险,因为它似乎被抛弃了。

是的,如果你想在2d空间中生成一个向量,你就必须编写一个类或使用一个库,比如,你能不能用一个简单的
点2d(x,y)
来定义向量的长度

使
point2da=新的点2d(1,1)的大小为1.4,方向为NE。a
point2db=newpoint2d(2,2)具有相同的方向,但大小为2.8

然后添加的内容就是:
point2dc=newpoint2d(a.x+b.x,a.y+b.y)

在3d空间中,我会创建自己的类,或者根据实际问题创建完全不同的数据结构


编辑:我希望他在过去的3年里找到了解决办法。

我知道这很旧,但也许有人会发现这很有用:


还有一个类。

fyi,向量是线程安全的arraylistSnarky answer=为SIMDI编写一个JNI接口。我已经为数学向量编写了一个快速开源库,可以满足您的需要:我正在使用它进行所有2D/3D向量计算。它是为处理而创建的,但也可以用于其他项目。Java3D肯定会被放弃。然而,这仍然是一个很好的答案,因为您可以很容易地从Java3D中获取“vecmath.jar”并自己使用向量类。感谢链接,JScience看起来确实很棒!虽然现在回想起来,我还是很困惑。它做了我从未见过的事情。我想我会提出一个新的问题…看看JScience网站和CVS存储库,在过去的两年里似乎什么都没有改变。这不是个好兆头……这是OP问题的一个解决方案,但不是OP问题的答案。@gh。我不知道是不是黑白的。。。它似乎很清楚地回答了OP问题的第二部分“有没有办法在Java中进行向量操作(特别是加法)