如何改变锚点?

时间:2014-11-07 06:14:30

标签: ios objective-c scenekit anchorpoint scnnode

我正在使用SceneKit。对象SCNNode相对于中心旋转。如何更改SCNNode

的定位点
SCNScene *scene = [SCNScene new];

SCNBox *boxGeometry = [SCNBox boxWithWidth:384.f height:512.f length:20.f chamferRadius:0];

SCNMaterial *material = [SCNMaterial new];
material.diffuse.contents = [UIImage imageNamed:@"material"];

SCNNode *boxNode = [SCNNode nodeWithGeometry:boxGeometry];
boxNode.geometry.firstMaterial = material;
boxNode.pivot = SCNMatrix4MakeTranslation(0.5f, 0.5f, 0.5f);
[scene.rootNode addChildNode:boxNode];

self.sceneView.scene = scene;
self.sceneView.allowsCameraControl = YES;

2 个答案:

答案 0 :(得分:2)

与您的盒子大小相比,您的枢轴变换转换非常小。它没有正常化。

如果你想在一个角落周围翻译,你应该在所有方向翻译一半。

boxNode.pivot = SCNMatrix4MakeTranslation(384.0/2.0, 512.0/2.0, 20.0/2.0);

答案 1 :(得分:0)

举个简单的例子:

yourSceneNode.pivot = SCNMatrix4MakeTranslation(0.5,0.5,0.5),

您可以在其中更改节点的位置,旋转和缩放属性。

SCNNode类引用很好地解释了这个