Ответ 1
Да, вам нужно написать класс или использовать библиотеку, такую как JScience
Я знаю, что есть класс Vector в java, но это, кажется, просто более простая сделка типа ArrayList, а не фактический математический вектор (как по величине и направлению).
Есть ли способ сделать векторные манипуляции (в частности, дополнение) в Java? Или я застрял на собственном желании реализовать его или использовать сторонний модуль?
Да, вам нужно написать класс или использовать библиотеку, такую как JScience
Я не думаю, что есть встроенный способ сделать добавление векторов, однако я нашел серию, описывающую, как это может быть сделано.
Если вы хотите сделать вектор в 2d-пространстве, не могли бы вы просто пойти с простым 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 имеет различные формы векторных классов (Vector3d, Vector3f, Vector4d и т.д.). Java3D, конечно, несколько рискованно в эти дни, хотя, как кажется, для отказа.
Да, вам нужно будет написать библиотеку (или использовать стороннюю библиотеку) для выполнения векторной арифметики.
Я знаю, что это старо, но, возможно, кто-то найдет это полезным:
Существует также Apache Commons Math, который имеет Vector2D.
там пакет javax.vecmath -