有没有一种简单的方法可以在 Java3D 中同时选择和移动(旋转、平移、缩放)多个形状?我看过一些示例,您可以选择(单击)单个形状并拖动它,但我还没有找到选择和移动多个形状的简单方法。
我想要做的是:
- 屏幕上有许多未选择的形状
- 选择一个或多个形状(通过单独单击或拖动框)
- 使用鼠标监听器仅移动选定的形状
- 当形状未被选择时,它们应该留在原处并停止移动
- 添加新形状后,它们应留在原处并开始移动
我最初的想法是有 2 个分支组“选定”和“未选定”。 Selected BranchGroup 将具有附加到根的父 TransformGroup,Unselected BranchGroup 将直接附加到根。当项目被选择时(我可以使用 PickCanvas 来完成),它们将从未选定的 BG 中删除并放入选定的 BG 中。
这样做的主要问题是,当选择或取消选择形状时,形状会跳跃。这是因为他们正在经历他们将要经历的群体的转变。
我觉得可能有一些更简单的方法可以做到这一点,也许可以利用 Java3D 中内置的东西。
最佳答案
我想出的最好方法是使用我在最初的问题中建议的 2 Branch Group 方法。
您创建 2 个分支组,一个用于选定的节点,一个用于未选定的节点。当您将节点从一个组移动到另一组时,必须平移各个节点,使它们保持在当前位置,而不是跳转到它们要加入的新分支组的平移。
关于java - 在 Java3D 中选择并移动多个形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8013331/