【问题标题】:Change SCNNode origin point without changing pivot更改 SCNNode 原点而不更改枢轴
【发布时间】:2019-06-10 01:57:59
【问题描述】:

我正在尝试将节点的原点从节点中心更改为节点的“左上角”(我正在使用正交项目并尝试重新实现 2D“视图”使用节点,所以我只显示一个面,例如平面)。

根据SCNNodedocs,更改节点的pivot 点允许您更改其子节点的原点。但是,它改变了旋转和缩放子节点的原点,这不是我想要做的。我希望我的原点位于左上角,但我希望能够围绕其中心点旋转/缩放我的节点。

如果我在(0, 0, 0) 放置一个子节点,我希望它出现在我节点的左上角。有没有办法做到这一点?

【问题讨论】:

    标签: scenekit scnnode


    【解决方案1】:

    使用 辅助 emptyNode 仅设置枢轴的偏移量但旋转和缩放将使用另一个节点围绕几何中心发生。

    let sphereGeo = SCNSphere(radius: 2)
    sphereGeo.segmentCount = 4
    sphereGeo.materials.first?.diffuse.contents = NSColor.lightGray
    let sphereNode = SCNNode(geometry: sphereGeo)
    
    let emptyNode = SCNNode()
    scene.rootNode.addChildNode(emptyNode)
    emptyNode.addChildNode(sphereNode)
    
    emptyNode.simdPivot.columns.3.x = 5
    
    let action = SCNAction.repeatForever(SCNAction.rotate(by: .pi, 
                                                      around: SCNVector3(0,1,0), 
                                                    duration: 1))
    sphereNode.runAction(action)
    

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 2023-04-07
      • 2016-06-27
      • 2016-06-14
      • 1970-01-01
      • 2019-05-02
      • 2018-03-01
      • 2016-11-18
      • 1970-01-01
      相关资源
      最近更新 更多