首页 > 解决方案 > 我可以单独旋转我的子节点,但不能旋转具有 1 个枢轴点的组

问题描述

.dae我有一个从文件发送的根节点。它用相机和灯光创造了孩子们。如果需要,我可以旋转各个子节点。

我试图避免数学,因为它看起来很合乎逻辑,我可以旋转 1 个父节点并影响子节点上的更改。

我想通过旋转根节点来旋转子节点。我可以只旋转父节点吗?

或者

例如,我是否必须为围绕任意枢轴点(0、0、0)转换的每个点编写数学?

我读了相当多的书。我试图旋转根节点,使用SCNnode.rootNode.

我尝试使用新的 scnnode 创建一个枢轴点并将场景添加到该新的枢轴点。

我试过欧拉角,旋转....

func set_up_scn() {
  //  self.scn = self.view as SCNView!
    

    scene.scene = SCNScene(named: "sectional.dae");

    group = SCNNode()
    
    group.name = "FurnitureGroup"
    
    for node in self.scene.scene!.rootNode.childNodes {
        group.addChildNode(node);
    }
    scene.scene?.rootNode.addChildNode(group)

    
    
    scene.autoenablesDefaultLighting = true

    let panGesture = UIPanGestureRecognizer(target: self, action: #selector(panGestureAction))
    
    scene.addGestureRecognizer(panGesture)
}



@objc func panGestureAction(sender : UIPanGestureRecognizer) {
    var pos : CGPoint = sender.translation(in: self.scene)
    var pivotPoint : SCNNode = (self.scene.scene?.rootNode.childNode(withName: "FurnitureGroup", recursively: true))!
    
    pivotPoint.rotation.x = Float(pos.x)
    pivotPoint.rotation.y = Float(pos.y)
}

我没有收到错误。我也没有轮换;如果我打印出显示 x 正在变化的枢轴点旋转,我会得到旋转。但没有可见的旋转。

标签: iosswift3dscenekitscnnode

解决方案


推荐阅读