3

我正在与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;
4

2 回答 2

2

与框的大小相比,您的枢轴变换平移非常小。它没有标准化。

如果您想围绕其中一个角进行平移,则应向所有方向平移一半。

boxNode.pivot = SCNMatrix4MakeTranslation(384.0/2.0, 512.0/2.0, 20.0/2.0);
于 2014-11-07T07:48:03.163 回答
0

作为一个简单的例子:

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

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

SCNNode 类参考很好地解释了这一点

于 2014-11-07T06:26:35.517 回答