Можете ли вы сделать добавление вектора в Java, изначально? - PullRequest
25 голосов
/ 27 октября 2009

Я знаю, что в Java есть класс Vector, но, похоже, это просто более простой тип сделки ArrayList, а не фактический математический вектор (как по величине и направлению).

Есть ли способ сделать векторные манипуляции (особенно дополнение) в Java? Или я застрял на том, чтобы самостоятельно реализовать его или использовать сторонний модуль?

-Jenny

Ответы [ 6 ]

13 голосов
/ 27 октября 2009

Да, вам придется написать класс или использовать библиотеку, например JScience

3 голосов
/ 12 сентября 2012

Если вы хотите создать вектор в 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);

В трехмерном пространстве я бы создал свой собственный класс или совершенно другую структуру данных в зависимости от вашей актуальной проблемы.

Редактировать: Я надеюсь, что он нашел решение за последние 3 года ..

3 голосов
/ 27 октября 2009

Я не думаю, что есть встроенный способ добавить вектор, однако я нашел серию , описывающую, как это можно сделать.

2 голосов
/ 27 октября 2009

Java3D имеет различные формы классов Vector (Vector3d, Vector3f, Vector4d и т. Д.). Java3D, конечно, несколько рискованный в наши дни, так как он, похоже, готов к отказу.

1 голос
/ 13 августа 2014

Я знаю, что это старый, но, возможно, кто-то найдет это полезным:

Существует также Apache Commons Math , который имеет Vector2D класс.

1 голос
/ 27 октября 2009

Да, вам придется написать библиотеку (или использовать стороннюю библиотеку) для выполнения векторной арифметики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...