Нарисуйте точку при нажатии SceneKit - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь создать приложение, в котором если вы нажмете на определенное место в трехмерном человеческом теле, то там, где вы нажали, появится точка. Вы можете перемещаться по 3D-модели человеческого тела, чтобы увидеть ее заднюю и боковые стороны. Я использую SceneKit и включил свою функцию handleTap ниже. Мне сложно понять, как нарисовать точку. Извините, если это новый ie вопрос, я новичок в использовании SceneKit. Большое спасибо за любую помощь. :)

  @objc func handleTap(_ gestureRecognize: UIGestureRecognizer) {
    let p = gestureRecognize.location(in: sceneView)
    let hitResults = sceneView.hitTest(p, options: [:])
    if hitResults.count > 0 {
        let result: SCNHitTestResult = hitResults[0]
        
        print (result.textureCoordinates(withMappingChannel: 0))// This line is added here.
        print("x: \(p.x) y: \(p.y)") // <--- THIS IS WHERE I PRINT THE COORDINATES
        let point = result.textureCoordinates(withMappingChannel: 0)
               print (point)
               let circlePath = UIBezierPath(arcCenter: point, radius: CGFloat(10), startAngle: CGFloat(0), endAngle: CGFloat(Double.pi * 2), clockwise: true)
               shapeLayer.path = circlePath.cgPath
               shapeLayer.fillColor = UIColor.clear.cgColor
               shapeLayer.strokeColor = UIColor.red.cgColor
               shapeLayer.lineWidth = 3.0
    }
}

введите описание изображения здесь

...