Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在SceneKit中将全局节点位置转移到本地节点位置_Ios_Swift_Scenekit - Fatal编程技术网

Ios 在SceneKit中将全局节点位置转移到本地节点位置

Ios 在SceneKit中将全局节点位置转移到本地节点位置,ios,swift,scenekit,Ios,Swift,Scenekit,到目前为止,我了解了如何在Swift(worldTransform)中将局部节点位置转换为全局值 我的问题是:我如何将它转换成另一种方式?(由于旋转,子节点的x/y/z轴可能会改变) 我知道这和我的位置有关,但我找不到任何有助于我理解它的参考资料 这就是我想做的: 节点A是rootNode的子节点,其位置为A。 节点B是rootNode的子节点,具有位置B和旋转B。 节点B1是节点B的子节点,其中包含局部坐标。 我想将节点B1移动到节点A的位置并替换它 如何将节点A的坐标转换为节点B的本地系统

到目前为止,我了解了如何在Swift(worldTransform)中将局部节点位置转换为全局值

我的问题是:我如何将它转换成另一种方式?(由于旋转,子节点的x/y/z轴可能会改变)

我知道这和我的位置有关,但我找不到任何有助于我理解它的参考资料

这就是我想做的: 节点A是rootNode的子节点,其位置为A。 节点B是rootNode的子节点,具有位置B和旋转B。 节点B1是节点B的子节点,其中包含局部坐标。 我想将节点B1移动到节点A的位置并替换它

如何将节点A的坐标转换为节点B的本地系统


干杯

您必须在
节点B1
的父节点的坐标系中表达新的变换,并从

  • nodeA
    父节点的坐标系

    nodeB1.transform=[nodeB1.parentNode convertTransform:nodeA.transform fromNode:nodeA.parentNode]

  • 还是世界坐标系

    nodeB1.transform=[nodeB1.parentNode convertTransform:nodeA.worldtransfromnode:nil]


  • 当然,您可以用
    nodeB
    替换
    nodeB1.parentNode
    ,在这种情况下,
    nodeA
    的父节点是根节点

    请看一看这个极好的答案:@sebastiandresler这个问题是关于精灵工具包的,这是关于场景工具包的。@DavidRönnqvist虽然您完全正确,但在我看来它仍然相关。