【问题标题】:How to change anchor point?如何更改锚点?
【发布时间】:2015-01-03 21:20:30
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c scenekit anchorpoint scnnode


    【解决方案1】:

    举个简单的例子:

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

    更改节点位置、旋转和缩放属性的位置。

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

    【讨论】:

    • 感谢您的回答,但它不起作用。看看我上面的代码。
    • 嗯..你现在有什么问题。某种错误??
    • 不,我的对象围绕中心旋转。我需要像打开一本书一样围绕左侧旋转一个对象。
    【解决方案2】:

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

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

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

    【讨论】:

    • 如何旋转对象?如果您依赖allowsCameraControl,这是错误的方法。您需要自己操作节点(相机或盒子)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多