0

首先,我想说我是Java3D 的新手。请容忍我的无知。我已经使用 Java3D 制作了一个应用程序,但在缩放时遇到了以下问题。

  1. Java3D 的 MouseWheelZoom 行为似乎沿 Z 轴移动对象。在场景中,我的 Z 轴没有超出平面,因此通过使用 MouseWheelZoom ,对象不会靠近,但会超出屏幕。有没有办法将缩放方向设置为任意方向?

  2. 通过使用 MouseWheelListener 并根据缩放步骤更改查看平台,我解决了这个问题。但现在还有另一个问题。当物体接近一定距离时,物体的某些部分(通常是角落)开始消失,因此我无法按自己的意愿缩放。

能否请你帮忙 ?

问候,

哈桑

4

1 回答 1

0
  1. 问题:我猜您对 MouseControl 使用了 OrbitBehavior,例如:

    orbit = new OrbitBehavior(canvas3d, OrbitBehavior.REVERSE_ALL);
    

如果是这种情况,请尝试

    orbit.setZoomFactor(-1d);

反转缩放方向(默认缩放系数为 +1d)。

对您的 2. 问题:您必须在 PlatformGeometry 上设置一个 BoundingLeaf 来封装您的“查看区域”。尝试这样的事情

defaultBounds = new BoundingSphere(new Point3d(radiusGameMap, 0.0, radiusGameMap),
            radiusGameMap * 6.0d);
BoundingLeaf boundingLeaf = new BoundingLeaf(defaultBounds);
PlatformGeometry platformGeom = new PlatformGeometry();
platformGeom.addChild(boundingLeaf);

其中 radiusGameMap 是定义整个地图半径的双精度值。

于 2012-06-27T11:59:18.360 回答