swift – 从一个结构转换为另一个结构
我将一些Objective-C代码转换为
Swift代码,我有以下问题:
目标C代码是 SCNNode *textNode = [SCNNode nodeWithGeometry:text]; textNode.transform = CATransform3DInvert(self.chartNode.worldTransform); 这是我尝试的转换代码: let textNode = SCNNode(geometry: text) textNode.transform = CATransform3DInvert(self.chartNode.worldTransform) 但是,我收到一个错误:’SCNMatrix4不能转换为CATransform3D’ 我认识到CATransform3DInvert采用CATransform3D类型的参数,而包含的参数类型为SCNMatrix4. 我尝试了以下的尝试: textNode.transform = CATransform3DInvert(CATransform3D(self.chartNode.worldTransform)) 但这不行. 然后我发现CATransform3D和SCNMatrix4都是结构体,我不确定如何从一个结构转换为另一个结构(或者即使可以在Swift中的结构之间转换) 也许还有一个更简单的方法? 任何帮助将不胜感激 – 谢谢.
好, Airspeed Velocity提供的链接有一个很好的解释,很容易转换为Swift(实际上是相同的). CATransform3D等是基于Mac OS X,不适用于iOS – 而是使用iOS SCNMatrix4等. 我使用SCNMatrix4Invert作为上面提到的rintaro,它的工作原理. 那么Swift代码现在是: let textNode = SCNNode(geometry: text) textNode.transform = SCNMatrix4Invert(self.chartNode.worldTransform) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |