Java 阿科雷–;如何为可转换节点设置默认比例?
我正在使用Java 阿科雷–;如何为可转换节点设置默认比例?,java,android,augmented-reality,arcore,sceneform,Java,Android,Augmented Reality,Arcore,Sceneform,我正在使用Transformable节点,可以设置最小和最大刻度值。但我使用的模型的默认大小要大得多,所以我必须使用手势使其变小 如何设置模型/可转换节点的默认比例值?我认为在设置实际可渲染节点之前,可以使用TransformableNode的setLocalScale方法。就像下面的代码一样 TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem()); andy.setLo
Transformable
节点,可以设置最小和最大刻度值。但我使用的模型的默认大小要大得多,所以我必须使用手势使其变小
如何设置模型/可转换节点的默认比例值?我认为在设置实际可渲染节点之前,可以使用TransformableNode的setLocalScale方法。就像下面的代码一样
TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem());
andy.setLocalScale(new Vector3(0.1f, 0.1f, 0.1f));
andy.setParent(anchorNode);
andy.setRenderable(andyRenderable);
andy.select();
我使用0.1f表示x、y、z值,这样看起来更好您可以轻松使用此代码为可转换节点设置默认比例:
TransformationSystem arTS;
arTS = MainActivity.getArFragment().getTransformationSystem();
TransformableNode node = new TransformableNode(arTS);
node.setRenderable(modelRenderable);
node.getScaleController().setMinScale(0.1999f);
node.getScaleController().setMaxScale(0.2000f);
node.setLocalScale(exhibit.getModelScale());
node.setLocalPosition(exhibit.getModelPosition());
//node.setParent(anchorNode);
node.setParent(sceneView.getScene());
node.getRotationController().setEnabled(true);
node.getScaleController().setEnabled(true);
sceneView.getScene().addChild(node);
node.select();
imho为节点设置默认比例的最简单方法是在sfa文件中定义三维模型的比例属性请注意,比例由
TransformableNode
的ScaleController
的最大/最小值限定。您可以使用transformableNode.GetScaleControl().setMaxScale(maxScale)
和transformableNode.GetScaleControl().setMinScale(minScale)
来更改它。您能告诉我如何获得transformableNode
以米为单位的缩放大小吗。假设我在y方向缩放一个立方体。现在我想得到它的比例大小,单位是米。请帮助我如何做到这一点?如果上述解决方案不起作用,您可能需要通过执行以下操作来设置最小比例。在我的例子中,现有的minScale是.75f andy.getScaleController().setMinScale(0.1f));我得到java.lang.IllegalStateException:执行此操作时,maxScale必须大于minScale。您确定MinScale和MaxScale可以相等吗?在这种情况下,您可以这样设置:.setMinScale(0.1999f)
。