web-dev-qa-db-ja.com

Javaでネイティブにベクトル加算を行うことはできますか?

Javaに「Vector」クラスがあることは知っていますが、それは実際の数学的ベクトルではなく、単純なArrayListタイプの取引のようです(大きさや方向など)。

Javaでベクトル操作(特に加算)を行う方法はありますか?それとも、それを実装したり、サードパーティのモジュールを使用したりする必要がありますか?

25
Jenny

はい、クラスを作成するか、 JScience などのライブラリを使用する必要があります。

13
dfa

2次元空間でベクトルを作成する場合は、単純なPoint2D(x,y)を使用して、ベクトルの長さに大きさを定義させることはできませんか?

したがって、Point2D a = new Point2D(1,1);の大きさは1.4で、NE方向です。そして、Point2D b = new Point2D(2,2);の方向は同じですが、大きさは2.8です。

その場合、加算は次のようになります。Point2D c = new Point2D(a.x + b.x, a.y + b.y);

3D空間では、実際の問題に応じて、独自のクラス、またはまったく異なるデータ構造を作成します。

編集:彼が過去3年間で解決策を見つけたことを願っています。

4
Stegger

ベクトル加算を行うための組み込みの方法はないと思いますが、これを行う方法を説明している シリーズ を見つけました。

3
luvieere

Java3Dには、さまざまな形式のVectorクラス(Vector3d、Vector3f、Vector4dなど)があります。もちろん、Java3Dは、見捨てられたように見えるので、最近はやや危険です。

2
M1EK

私はこれが古いことを知っていますが、多分誰かがこれが役に立つと思うでしょう:

Vector2D クラスを持つ Apache Commons Math もあります。

1
Felix Scheffer

はい、ベクトル演算を実行するには、ライブラリを作成する(またはサードパーティのライブラリを使用する)必要があります。

1
erickson