Я пытаюсь найти способ выяснить, находится ли Point3f внутри или на краю сетки, состоящей из шестиугольников (каждый из которых является определенным объектом Shape3D).
Идея состоит в том, чтобыизмените цвет шестиугольника, совмещенного с Point3f или обоими шестиугольниками, если точка находится на ребре.
Чтобы создать сетку, я использовал эту логику http://playtechs.blogspot.com/2007/04/hex-grids.html Так что довольно легко узнать, как шестиугольникрасположены друг от друга.
Моя проблема связана с координатами, в SceneGraph я использую структуру:
BranchGroup> TransformGroup> Hexagrid (TransformGroup)> HexaRow (TranformGroup)> Hexagon (Shape3D)
Каждая TransfromGroup создается с помощью Transform3D (Vector3F) для ее позиционирования в трехмерном пространстве
Я хотел бы восстановить координаты каждого шестиугольника из BranchGroup, поскольку мой Point3f будет сгенерирован накорень SceneGraph.
Я пытался поместить координаты вершины в HashMap, где Point - это координата в сетке гексагонаon, а Point3f [] - координаты в трехмерном пространстве каждой вершины шестиугольника.Я сделал это, добавив Шестигранник в строку, но, поскольку для размещения структуры до того шага с каждым из них будет 3 Вектора, то для каждой из них будет Локальная система координат, и я не смогу ее правильно работать.
Есть либолее простой способ найти координаты объекта Shape3d без необходимости добавления всех векторов, используемых для его получения?
Это даже правильный способ архивирования моей цели?(из того, что я недооценил, обнаружение столкновений работает только с 2 объектами, и мне действительно нужно знать, находится ли моя точка на краю, делает 3 объекта)
Спасибо за помощь!