gpt4 book ai didi

java - 使用鼠标移动旋转 3D View - 使用固定相机

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:32 24 4
gpt4 key购买 nike

背景
https://marketplace.gephi.org/plugin/force-atlas-3d/

问题
- 我在屏幕上有一个以 (x,y,z) 坐标表示的节点网络。
- 鼠标指针的位置在屏幕上用 (x,y) 坐标表示(好吧,就像正常情况一样)。

=> 我想使用鼠标的拖动 Action (x 和 y 的变化)来旋转节点网络的 View 。

  • 将鼠标向左拖动会导致节点绕垂直轴向左旋转(据我所知,“旋转”在此处未在操作上定义,但我希望您能直观地理解我的意思)。

  • 将鼠标拖动到屏幕底部会导致节点围绕水平轴沿查看者的方向旋转。

在我看来,我需要一种方法,将鼠标坐标的变化作为输入,并为每个节点返回相应的坐标变化。

注意事项
- 这里没有摄像机移动。
- 解决方案是用 Java 开发的 - 也许像 Java3D 这样的一些库在这里是相关的?

任何帮助将不胜感激 - 并在我正在构建的 Gephi 插件中得到认可!谢谢!

最佳答案

尝试使用 orbit behavior

OrbitBehavior orbit = new OrbitBehavior(canvas, OrbitBehavior.REVERSE_ROTATE);
orbit.setSchedulingBounds(new BoundingSphere());
universe.getViewingPlatform().setViewPlatformBehavior(orbit);

它向各个方向旋转 View 。但是,您可以通过将 Y 旋转移动乘数设置为 0 来限制向左和向右方向的旋转(取决于鼠标的方向),如下所示:

orbit.setRotXFactor(2);//or any other value
orbit.setRotYFactor(0);

关于java - 使用鼠标移动旋转 3D View - 使用固定相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17464571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com