ARcore能不触屏画线吗?
Can lines be drawn in ARcore without touching the screen?
我必须绘制一个类似于 Just A Line AR App 的应用程序,但在我的应用程序中,线条应该随着相机位置的改变而呈现,并且不需要 tapping/holding 在屏幕上。如何实现?
我假设你的意思是你希望你的线被锚定在场景中 - 即当你四处移动设备时,线上的点跟随相机视图的中心。
假设你可以:
- 开始时在摄像机中心前方一定距离处放置一个锚点,例如前方 1M。
- 安排了一个工作以某个时间间隔重复,例如500 毫秒和:
- 放置一个新的锚点,再次在镜头前1M处
- 将新锚点添加到锚点集合或列表中
- 在列表中的前一个锚点和当前锚点之间画一条线
此代码将在摄像机前放置一个锚点:
//Add an Anchor and a renderable in front of the camera
Session session = arFragment.getArSceneView().getSession();
float[] pos = { 0, 0, -1 };
float[] rotation = { 0, 0, 0, 1 };
Anchor anchor = session.createAnchor(new Pose(pos, rotation));
anchorNode = new AnchorNode(anchor);
anchorNode.setRenderable(andyRenderable);
anchorNode.setParent(arFragment.getArSceneView().getScene());
我必须绘制一个类似于 Just A Line AR App 的应用程序,但在我的应用程序中,线条应该随着相机位置的改变而呈现,并且不需要 tapping/holding 在屏幕上。如何实现?
我假设你的意思是你希望你的线被锚定在场景中 - 即当你四处移动设备时,线上的点跟随相机视图的中心。
假设你可以:
- 开始时在摄像机中心前方一定距离处放置一个锚点,例如前方 1M。
- 安排了一个工作以某个时间间隔重复,例如500 毫秒和:
- 放置一个新的锚点,再次在镜头前1M处
- 将新锚点添加到锚点集合或列表中
- 在列表中的前一个锚点和当前锚点之间画一条线
此代码将在摄像机前放置一个锚点:
//Add an Anchor and a renderable in front of the camera
Session session = arFragment.getArSceneView().getSession();
float[] pos = { 0, 0, -1 };
float[] rotation = { 0, 0, 0, 1 };
Anchor anchor = session.createAnchor(new Pose(pos, rotation));
anchorNode = new AnchorNode(anchor);
anchorNode.setRenderable(andyRenderable);
anchorNode.setParent(arFragment.getArSceneView().getScene());