ARKit:将SCNNode(平面几何)放置在给定的位置,面向SCNCamera,但是在Y周围的角度偏移?

问题描述:

所以,ARKit:将SCNNode(平面几何)放置在给定的位置,面向SCNCamera,但是在Y周围的角度偏移?

我有我想要放置节点的确切位置。如果我测试的东西具有球形几何结构我可以通过告诉节点放置在世界球体:

node.simdPosition =位置

(I提供了“位置”作为输入到该函数)。

成功地将对象置于世界上我想要的位置。

我真正想要做的是把一个平面:

 let plane = SCNPlane(width: 0.2, height: 0.3) 
     plane.cornerRadius = plane.width/10 
     plane.firstMaterial?.diffuse.contents = UIColor.red 
     plane.firstMaterial?.specular.contents = UIColor.white 
     let node = SCNNode(geometry: plane) 

然后告诉它被放置在“位置”:这一切

node.simdPosition = position 

的工作原理与飞机为好。我有问题的是角度:

我想告诉飞机的节点放置在给定的“角度”(约Y)偏移到相机。我试过,但它不工作:

node.rotation = SCNVector4Make(0, 1, 0, currentFrame.camera.eulerAngles.z - angle) 

那么接下来的问题是,如何才能节点放置在某个位置,并在它被放置在世界的那一刻,也有一定的ÿ角度偏移从垂直到相机?

+0

这工作:node.eulerAngles = SCNVector3Make(0,cameraEulerAngles.y - Float(0.7),0) – zumzum

我用错了欧拉角...(Z)

这使得它的工作:

node.eulerAngles = SCNVector3Make(0,cameraEulerAngles.y - 浮动(0.7),0)