我需要一些帮助来创建锚点,该锚点应与增强的图像中心姿势保持固定的偏移量。
增强后的图像是,模型是右图所示的平面图,实际上是“绘制”在板后的地面上。
我已经创建了平面图的模型,当检测到增强图像时,我想将其放置在地面上。
我认为有一些很好的方法可以完成一些Matrix操作,但我没有发现。相反,这就是我想出的
Pose modelPose = image.getCenterPose();
float[] modelTranslation = modelPose.extractTranslation()
.transformPoint(new float[]{position.x, position.y, position.z});
float[] modelRotation = modelPose.extractRotation().getRotationQuaternion();
Anchor anchor = session.createAnchor(
new Pose(modelTranslation, new float[]{0f, modelRotation[1], 0f, modelRotation[3]}));
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setLocalScale(editArea.getScale());
anchorNode.setParent(arFragment.getArSceneView().getScene());
不幸的是,这是非常不准确的,因为每次识别到增强图像时模型的位置都不同。显然我在这里错过了一些东西。
有可靠的方法完成此操作的提示吗?