到目前为止,我已经弄明白了如何在 Swift 中将本地节点位置转换为全局值 (worldTransform)。
我的问题是:我怎样才能反过来转换它? (由于旋转,子节点的 x/y/z 轴可能会改变)。
我知道它与 convertPosition 有关,但我找不到任何有助于我理解它的引用。
这是我想做的: 节点 A 是 rootNode 的子节点,位置为 A。 节点 B 是 rootNode 的子节点,具有位置 B 和旋转 B。 节点 B1 是节点 B 的子节点,其内部有局部坐标。 我想将节点 B1 移动到节点 A 的位置并替换它。
如何将节点 A 的坐标转换为节点 B 的本地系统?
干杯
最佳答案
你必须在 nodeB1
的父坐标系中表达新的变换,并从
nodeA
的父坐标系nodeB1.transform = [nodeB1.parentNode convertTransform:nodeA.transform fromNode:nodeA.parentNode];
或者世界坐标系
nodeB1.transform = [nodeB1.parentNode convertTransform:nodeA.worldTransform fromNode:nil];
当然可以将nodeB1.parentNode
替换为nodeB
,此时nodeA
的parent就是根节点
关于ios - 在 SceneKit 中将全局节点位置转移到本地节点位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28064427/