围绕自身中心旋转SCNText节点(Swift - Scenekit)

时间:2014-08-12 13:48:51

标签: 3d swift ios8 scenekit

我正在尝试旋转一些3D文字。如何围绕自身的中心旋转,而不是左边缘?我已经尝试将文本对齐设置为中心,这也没有任何帮助。

let titleText = SCNText(string: "My Title", extrusionDepth: 0.8)  
let titleNode = SCNNode(geometry: titleText)

titleNode.position = SCNVector3(x: 0, y: 0, z: 0)
titleNode.runAction(SCNAction.rotateByX(0, y: 5, z: 0, duration: 2.5))
scene.rootNode.addChildNode(titleNode)

2 个答案:

答案 0 :(得分:2)

您可以将节点的pivot属性设置为宽度和高度的一半(请参阅getBoundingBoxMin:max:

答案 1 :(得分:0)

SCNText的设置枢轴有点棘手(详情请见here

Bellow是设置枢轴和旋转文字的代码:

let geoText = SCNText(string: "Hello", extrusionDepth: 1.0)
geoText.font = UIFont (name: "Arial", size: 8)
geoText.firstMaterial!.diffuse.contents = UIColor.red
let textNode = SCNNode(geometry: geoText)

let (minVec, maxVec) = textNode.boundingBox
textNode.pivot = SCNMatrix4MakeTranslation((maxVec.x - minVec.x) / 2 + minVec.x, (maxVec.y - minVec.y) / 2 + minVec.y, 0)
scnView.scene?.rootNode.addChildNode(textNode)

let loop = SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 5, z: 0, duration: 2.5))
textNode.runAction(loop)