Конвертировать CGPoint из вида в SCNVector3 в sceneKit

Я использую AVFoundation для передней камеры View. С передней камеры я распознаю Лицо в каждом кадре, используя рамки видения. От этого я могу получить CGPoints из носа. Теперь я хочу добавить 3D-объект в одну из точек носа, используя представление sceneKit, и я хочу преобразовать эти носовые CGPoint в SCNVector3, чтобы я мог назначить положение трехмерному объекту.

1 ответ

Преобразование CGPoint в SCNVector в SceneKit с помощью метода hitTest или raycast,

       let touchPoint = CGPoint(x: 34, y: 298) // for hitTest example
 let hitTestResult : [ARHitTestResult]  = sceneView.hitTest(touchPoint, types: .featurePoint)
     guard let hitResult = hitTestResult.first else {
       return
       }
 let vector = SCNVector3((hitResult.worldTransform.columns.3.x), (hitResult.worldTransform.columns.3.y), (hitResult.worldTransform.columns.3.z))
        print(vector) // returns somewhat like this SCNVector3(x: -0.2502137, y: 0.15422173, z: -0.17789307)
Другие вопросы по тегам