iOS рисовать стрелку

У меня есть приложение scenekit / arkit. Мне нужно нарисовать стрелку, как это http://take.ms/LaGNw. Это должна быть двухмерная стрелка, а лицо стрелки должно смотреть на одну точку SCNVector3.

Я могу нарисовать стрелку так:

// 1
        let indices: [Int32] = [3, 0, 1, 2]
        let vectorMiddle = SCNVector3()

        var vertice1 = vectorMiddle
        vertice1.x -= Float(bottomCodeRadius)
        var vertice2 = vectorMiddle
        vertice2.x += Float(bottomCodeRadius)
        var vertice3 = vectorMiddle
        vertice3.y += Float(bottomCodeRadius)
        var vertices = [vertice1, vertice2, vertice3]

        let indexData = Data(bytes: indices,
                             count: indices.count * MemoryLayout<Int32>.size)



        let source = SCNGeometrySource(vertices: vertices)
        let element = SCNGeometryElement(data: indexData,
                                         primitiveType: .polygon,
                                         primitiveCount: 1,
                                         bytesPerIndex: MemoryLayout<Int32>.size)
        let geometry = SCNGeometry(sources: [source], elements: [element])
        geometry.firstMaterial?.diffuse.contents = color
        geometry.firstMaterial?.lightingModel = .constant
        geometry.firstMaterial?.isDoubleSided = true
        let triangleNode = SCNNode(geometry: geometry)
        triangleNode.position.y = yOffsetOfCone
//        triangleNode.rotation = SCNVector4Make(1, 0, 0, Float.pi / 2)
        nodeCyl.addChildNode(triangleNode)

Но если я хочу, чтобы он смотрел на правильную точку в пространстве, я должен сделать что-то вроде этого:

let constraint = SCNLookAtConstraint(target: sceneView.pointOfView)
        arrowNode.constraints = [constraint]

Но когда я пытаюсь объединить это, это не работает должным образом.

Кто-нибудь может помочь?

0 ответов

Другие вопросы по тегам