我正在使用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;

最佳答案

与框的大小相比,您的数据透视转换转换非常小。它没有规范化。

如果要平移一个角,则应在所有方向平移一半的边。

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

08-05 10:03