我正在使用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;
答案 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类引用很好地解释了这个