我尝试使用 quaternion.axisAngle 就地旋转 AR 对象,但它不起作用。
我只是想让一个物体原地旋转,like this .
这是我的代码。
//Right Rotation
ImageButton.OnTouchListener controll_BtnRigntRoation = new ImageButton.OnTouchListener() {
@Override
public boolean onTouch(View controllRightDown, MotionEvent event) {
if (controllRightDown == mRightRoation) {
ma.initModel();
for (int i=0; i<ma.infoArray.size(); i++) {
if (ma.infoArray.get(i).getNode().isSelected()) {
int finalI = i;
ma.arFragment.getArSceneView().getScene().addOnUpdateListener(frameTime -> {
Quaternion r1 = Quaternion.axisAngle(new Vector3(0, 0, 1), frameTime.getStartSeconds()* 180); //y 방향으로는 안됨..
ma.infoArray.get(finalI).getNode().setLocalRotation(r1);
});
}
}
}
return false;
}
};
请帮助我。
最佳答案
您很可能想要使用可变形节点 - 这将允许您执行我认为您正在寻找的旋转类型:
使用示例:
var newAnchorNode:AnchorNode = AnchorNode(newAnchor)
anchorNode.setParent(arFragment.getArSceneView().getScene());
var transNode = TransformableNode(arFragment.transformationSystem)
//Rotate the node - i.e set the direction it is 'looking'
transNode.setLookDirection(Vector3(0f, xPoint, yPoint), topDirection)
//Set it's parent to the anchor you created and set
//the renderable
transNode.setParent(anchorNode);
transNode.setRenderable(renderable);
关于java - 如何将 AR 对象旋转到位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62062831/