Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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
Ios 如何将SCNText放置在SCNPlane中?_Ios_Swift_Scenekit_Augmented Reality_Arkit - Fatal编程技术网

Ios 如何将SCNText放置在SCNPlane中?

Ios 如何将SCNText放置在SCNPlane中?,ios,swift,scenekit,augmented-reality,arkit,Ios,Swift,Scenekit,Augmented Reality,Arkit,我正在尝试创建一个AR应用程序,其中包含大量的SCNText和SCNPlane。 我试图将每个SCNText放在SCNPlane内,但如图所示,文本总是在平面外 我的问题是如何将每个SCNText放在SCNPlane中 这是我的代码部分: func displayMark() { var str = ["Orange ","Apple ","Banana ","limon", "onion"] var x : Float = 1 var i = 0 while

我正在尝试创建一个AR应用程序,其中包含大量的
SCNText
SCNPlane
。 我试图将每个
SCNText
放在
SCNPlane
内,但如图所示,文本总是在平面外

我的问题是如何将每个
SCNText
放在
SCNPlane

这是我的代码部分:

func displayMark() {

    var str = ["Orange ","Apple ","Banana ","limon", "onion"]

    var x : Float = 1
    var i = 0
    while i<5 {

    let text = SCNText(string: str[i], extrusionDepth: 0)
    let material = SCNMaterial()
    material.diffuse.contents = UIColor.black
    text.materials = [material]

    let node = SCNNode()
    node.position = SCNVector3(0, x/15 , 0)
    node.scale = SCNVector3(0.0009, 0.0009, 0.0009)


    let planeNode2 = SCNNode(geometry: text)
     node.addChildNode(planeNode2)

    let minVec = node.boundingBox.min
    let maxVec = node.boundingBox.max
    let bound = SCNVector3Make(maxVec.x - minVec.x,
                               maxVec.y - minVec.y,
                               maxVec.z - minVec.z);



    let plane = SCNPlane(width: CGFloat(bound.x),
                         height: CGFloat(bound.y))
    plane.cornerRadius = 5
    plane.firstMaterial?.diffuse.contents = UIColor.gray.withAlphaComponent(0.8)


    let planeNode = SCNNode(geometry: plane)
    node.addChildNode(planeNode)
    planeNode.name = "text"
        i = i + 1
        x = 1 + x

        self.sceneView.scene.rootNode.addChildNode(node)
        self.sceneView.autoenablesDefaultLighting = true
    }
}
func displayMark(){
var str=[“橙”、“苹果”、“香蕉”、“柠檬”、“洋葱”]
变量x:Float=1
变量i=0

而我的
SCNText
的特点是它的
枢轴点(也称为
原点
)位于其左角容器的底部。 就像这样:

因此,需要使用以下公式计算轴心点的中心位置:

/*   ( Max dist - Min dist ) / 2                            for X and Y    */ 
这里有一个关于这个话题的例子

此外,沿
Z
轴的正方向稍微偏移对文本也有好处


希望这能有所帮助。

SCNText
的特点是它的
轴心点(也称为
原点
)位于容器左角的底部。 就像这样:

因此,需要使用以下公式计算轴心点的中心位置:

/*   ( Max dist - Min dist ) / 2                            for X and Y    */ 
这里有一个关于这个话题的例子

此外,沿
Z
轴的正方向稍微偏移对文本也有好处

希望这有帮助