Javaに「Vector」クラスがあることは知っていますが、それは実際の数学的ベクトルではなく、単純なArrayListタイプの取引のようです(大きさや方向など)。
Javaでベクトル操作(特に加算)を行う方法はありますか?それとも、それを実装したり、サードパーティのモジュールを使用したりする必要がありますか?
はい、クラスを作成するか、 JScience などのライブラリを使用する必要があります。
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年間で解決策を見つけたことを願っています。
ベクトル加算を行うための組み込みの方法はないと思いますが、これを行う方法を説明している シリーズ を見つけました。
Java3Dには、さまざまな形式のVectorクラス(Vector3d、Vector3f、Vector4dなど)があります。もちろん、Java3Dは、見捨てられたように見えるので、最近はやや危険です。
私はこれが古いことを知っていますが、多分誰かがこれが役に立つと思うでしょう:
Vector2D クラスを持つ Apache Commons Math もあります。
はい、ベクトル演算を実行するには、ライブラリを作成する(またはサードパーティのライブラリを使用する)必要があります。