Геометрические вычисления в 3D пространстве (Java)

Александр18 років у сервісі
Дані замовника будуть вам доступні після подання заявки
10.11.2015

Используя вспомогательный класс Point (double x, double y, double z), требуется написать Java класс, включающий следуюшие методы.

1. boolean intersectLineSegment(Point l1, Point l2, Point t1, Point t2, Point t3) - проверка пересечения отрезка и треугольника

2. boolean intersectRay(Point l1, Point l2, Point t1, Point t2, Point t3) - проверка пересечения луча и треугольника

3. double getDistance(Point p, Point t1, Point t2, Point t3) - минимальное расстояние от точки до треугольника

Для первых двух методов использовать Барицентрический тест (http://www.ray-tracing.ru/articles213.html). Лучи и отрезки задаются двумя точками, треугольники - тремя вершинами. Код должен быть оптимальным с точки зрения быстродействия и оптимизации. Если у вас есть более эффективный алгоритм, то можно реализовать на нем. Задача вполне ясная, прошу указывать цену и сроки.