我正在關注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. 如何檢索()與點擊添加點擊數事件