Как выделить радиус сферы в 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
}