我正在关注ARCore示例(https://github.com/google-ar/arcore-android-sdk),并且尝试移除已添加的对象3d(andy)。 如何检测使用ARCore的轻击事件是否击中了已添加的3D对象?检测使用ARCore的轻击事件是否击中了已添加的3d对象
2
A
回答
1
我有同样的问题,这些天,我尝试过2个解决方案,
frame.hitTest(MotionEvent)
2.项目从ARCORE世界顶点到2d在视图坐标
起初我用1.在飞机上得到命中姿势,并与已经存在的3d物体的姿势进行比较,但一旦3d物体离开飞机,这将不起作用。
最后我用2.来查看3D物体的顶点,然后用水龙头位置做点击测试。
如果你正在跟踪的ARCORE样品,你可以看到这条线在ObjectRenderer.java的绘制方法
Matrix.multiplyMM(mModelViewProjectionMatrix, 0,
cameraPerspective, 0, mModelViewMatrix, 0);
“mModelViewProjectionMatrix”只是用这个ModelViewProjection矩阵来映射您已经添加3D对象的顶点从3d弧光世界到2D视图。
以我为例,我做这样的事情,
pose.toMatrix(mAnchorMatrix, 0);
objectRenderer.updateModelMatrix(mAnchorMatrix, 1);
objectRenderer.draw(cameraView, cameraPerspective, lightIntensity);
float[] centerVertexOf3dObject = {0f, 0f, 0f, 1};
float[] vertexResult = new float[4];
Matrix.multiplyMV(vertexResult, 0,
objectRenderer.getModelViewProjectionMatrix(), 0,
centerVertexOf3dObject, 0);
// circle hit test
float radius = (viewWidth/2) * (cubeHitAreaRadius/vertexResult[3]);
float dx = event.getX() - (viewWidth/2) * (1 + vertexResult[0]/vertexResult[3]);
float dy = event.getY() - (viewHeight/2) * (1 - vertexResult[1]/vertexResult[3]);
double distance = Math.sqrt(dx * dx + dy * dy);
boolean isHit = distance < radius;
我ARCORE测量应用程序中使用此,
https://play.google.com/store/apps/details?id=com.hl3hl3.arcoremeasure
相关问题
- 1. JavaScript - 检测单击事件是否触发了DOMNodeInserted事件
- 2. 如何检测HTML中的PDF对象中的单击事件
- 3. 如何检测'Enter'是否触发了点击事件?
- 4. 是否有可能通过实际点击或触发来检测jQuery点击事件是否已被调用?
- 5. 检测THREE.js中的点击对象
- 6. as3检查是否已经点击了数组中的项目
- 7. 如何检测一个对象是否已被添加使用angular.forEach AngularJS
- 8. 检查用户是否点击了“Ok”作为“onbeforeunload事件”
- 9. 检测div是否具有某个添加了点击的类(不刷新)
- 10. jquery检测点击事件
- 11. 检测用户是否点击添加到主屏幕
- 12. 检测Android WebView中是否点击了特定的按钮
- 13. 如何检测加载的ORM对象是否已更改?
- 14. 使用Moq,如何检测按钮点击是否触发了我的viewmodel中的事件?
- 15. ARcore检测墙
- 16. 使用python进行点击检测(对于maya 3D)
- 17. 重新确认SceneKit中的对象是否已被点击
- 18. 如何检测文件夹中是否添加了文件?
- 19. 如何检测select2是否已经加载点击jQuery中的输入字段?
- 20. Scenekit检测用户点击对象
- 21. 检测事件时点击已经选择的片段
- 22. 添加内嵌点击事件后发生的点击事件?
- 23. 单击事件时的颜色检测。
- 24. 可能检测是否在导航事件中加载了IFRAME?
- 25. 如何检测Java中的Image对象的鼠标单击事件?
- 26. 检测浏览器/设备是否支持双击事件
- 27. 检测中键单击事件
- 28. 添加keydown点击事件
- 29. 如何使用Nhibernate检测对象是否已更新?
- 30. 如何检索()与点击添加点击数事件