Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阿基特&x2013 ;iOS中的SCNNode旋转问题_Ios_Swift_Scenekit_Augmented Reality_Arkit - Fatal编程技术网

阿基特&x2013 ;iOS中的SCNNode旋转问题

阿基特&x2013 ;iOS中的SCNNode旋转问题,ios,swift,scenekit,augmented-reality,arkit,Ios,Swift,Scenekit,Augmented Reality,Arkit,我试图通过观看WWDC 2017视频创建一个演示应用程序 let planeNode = SCNNode(geometry: imageplane) sceneView.scene.rootNode.addChildNode(planeNode) var translation=matrix_identity_float4x4 translation.columns.3.z = -0.1 planeNode.simdTransform = matrix_multiply(currentFram

我试图通过观看WWDC 2017视频创建一个演示应用程序

let planeNode = SCNNode(geometry: imageplane)
sceneView.scene.rootNode.addChildNode(planeNode) 
var translation=matrix_identity_float4x4
translation.columns.3.z = -0.1
planeNode.simdTransform = matrix_multiply(currentFrame.camera.transform,
                                          translation)
上述代码工作正常,并正确显示平面。然而,点击它改变了快照的旋转,尝试了不同的方法,但没有任何效果


任何帮助都将不胜感激

在采用摄像机平移之前,更改
SCNNode
的旋转:

let planeNode = SCNNode (geometry: imageplane)
planeNode.eulerAngles.z = Float.pi / 2

var translation = planeNode.simdTransform
translation.columns.3.z = -0.1
planeNode.simdTransform = matrix_multiply(currentFrame.camera.transform,translation)

sceneView.scene.rootNode.addChildNode(planeNode)

我遇到了同样的问题,在将摄影机变换应用到节点之前,通过旋转平移矩阵解决了这个问题

Obj-C中的代码:

SCNNode *planeNode = [SCNNode nodeWithGeometry:imagePlane];

simd_float4x4 translation = planeNode.simdTransform;
translation.columns[3].z = -0.1;
translation =  SCNMatrix4ToMat4(SCNMatrix4Rotate(SCNMatrix4FromMat4(translation), GLKMathDegreesToRadians(90), 0, 0, 1.0));
planeNode.simdTransform = matrix_multiply(currentFrame.camera.transform, translation);

[self.sceneView.scene.rootNode addChildNode:planeNode];

“它改变快照的旋转”是什么意思?它应该将快照放在相机前面,与之平行。因此,如果您的相机是turner,则快照将作为well@guig它应该按原样显示屏幕截图。当前,它会更改图像的旋转。例如,如果快照处于portait模式,则最终添加的屏幕截图将显示在横向视图中。基本上像90度旋转一样应用于拍摄的图像。这里也一样。有什么想法吗?@monikazee-nope。没有想法:(dint找到任何解决方案我尝试了你的解决方案,仅适用于portait模式。在横向模式下,屏幕截图方向仍在改变。有没有解决方法?