首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SCNPlane中放置SCNText?

如何在SCNPlane中放置SCNText?
EN

Stack Overflow用户
提问于 2019-02-03 00:47:17
回答 1查看 607关注 0票数 1

我正在尝试创建一个AR应用程序,有一些SCNTextSCNPlane。我尝试将每个SCNText放在SCNPlane中,但正如这个figure所示,文本总是在平面之外。

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

这是我的代码部分:

代码语言:javascript
复制
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
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-02-21 19:58:04

SCNText的特殊之处在于它的pivot point (也就是origin point)位于左下角容器的底部。如下所示:

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

代码语言:javascript
复制
/*   ( Max dist - Min dist ) / 2                            for X and Y    */ 

这里有一个关于这个主题的useful post

对于你的文本来说,沿着轴的正方向做一个微小的偏移也是有好处的。,Z

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54495204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档