【发布时间】:2015-04-17 14:07:08
【问题描述】:
我正在尝试通过将块的轴心点设置为任何角来旋转块,但似乎设置轴心点实际上会重新定位节点,将点保持在原来的位置......
例如
SCNBox *box = [SCNBox boxWithWidth:1 height:2 length:1 chamferRadius:0];
SCNNode *node = [SCNNode nodeWithGeometry:box];
node.position = SCNVector3Make(0, 0, 0);
[self.scene.rootNode addChildNode:node];
node.pivot = SCNMatrix4MakeTranslation(0.5, -1, 0.5);
[node runAction:[SCNAction rotateByAngle:GLKMathDegreesToRadians(90)
aroundAxis:SCNVector3Make(0, 0, 1)
duration:2]];
如果 node.position 为 0,0,0,盒子几何形状为 1,2,1,我会想象这个块位于地板上方 1 个单位......如果你不这样做的话设置枢轴。
真正的问题是,你将如何设置这个节点的枢轴位置,而不影响它的位置,所以如果我按下右键,它会在 z 轴上围绕右下角最点旋转,如果我按下左键,它将围绕最左下角的点旋转,上下方向相同,但在 x 轴上。
【问题讨论】:
标签: ios objective-c macos scenekit