Как выделить радиус сферы в SCNSphere?

Я хочу выделить радиус сферы в SceneKit. Радиус должен иметь возможность вращаться на заданный угол. Понятия не имею, как это сделать. Я пытаюсь представить сферу Блоха (сфера с фиксированными полюсами, которая может вращать радиус под углом, чтобы показать определенную точку на поверхности сферы). В настоящее время у меня есть сфера с SKScene в качестве текстуры для нее в SCNScene. Пожалуйста, помогите мне с кодом.

Мой код:

struct SceneKitView: UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext<SceneKitView>) -> SCNView {
 let sceneView = SCNView()
//SCNView
    sceneView.scene = SCNScene()
    sceneView.allowsCameraControl = true
    sceneView.autoenablesDefaultLighting = true
    sceneView.backgroundColor = UIColor.white
    sceneView.frame = CGRect(x: 0, y: 10, width: 0, height: 1)

 //SKScene for the texture of the sphere
    let surfacematerial =  SKScene(size: CGSize(width: 300, height: 200))
    let point = SKShapeNode(circleOfRadius: 2)
    surfacematerial.backgroundColor = SKColor.blue
    point.fillColor = SKColor.red
    point.lineWidth = 0
    point.position = CGPoint(x: surfacematerial.size.width/2.0, y: surfacematerial.size.height/2.0)
    surfacematerial.addChild(point)

    //Actual sphere

    let sphere = SCNSphere(radius: CGFloat(2))

    let spherematerial = SCNMaterial()
    spherematerial.diffuse.contents = surfacematerial
    sphere.materials = [spherematerial]
    let spherenode = SCNNode(geometry: sphere)
    spherenode.position = SCNVector3(x: 10.0, y: 10.0, z: 10.0)
    spherenode.opacity = CGFloat(0.7)

    sceneView.scene?.rootNode.addChildNode(spherenode)

    return sceneView
}

func updateUIView(_ uiView: SCNView, context: UIViewRepresentableContext<SceneKitView>) {

}

typealias UIViewType = SCNView

}

0 ответов

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