Swift Scenekit - 居中 SCNText - getBoundingBoxMin:Max 问题

2024-01-24

享受 SCNText 上的alignmentMode 选项带来的乐趣。谷歌搜索了一下,看起来alignmentMode和containerFrame有问题。我发现的替代方案建议使用获取边界框功能来查找文本大小,然后手动进行相应调整。很好,除了我无法让该功能正常工作。当我尝试获取两个向量时,出现错误:

“SCNVector3”无法转换为“UnsafeMutablePointer ”

我在几何体和节点上都得到了这一点。代码示例如下

func setCounterValue(counterValue:Int) {

    var v1 = SCNVector3(x: 0,y: 0,z: 0)
    var v2 = SCNVector3(x: 0,y: 0,z: 0)


    _counterValue = counterValue

    let newText = SCNText(string: String(format: "%06d", counterValue), extrusionDepth:sDepth)
    newText.font = UIFont (name: "Arial", size: 3)
    newText.firstMaterial!.diffuse.contents = UIColor.whiteColor()
    newText.firstMaterial!.specular.contents = UIColor.whiteColor()

    newText.getBoundingBoxMin(v1, max: v2)

    _textNode = SCNNode(geometry: newText)
    _textNode.getBoundingBoxMin(v1, max: v2)

}

任何建议都非常感激。


好的,我的最终代码解决方案如下所示:

func setCounterValue(counterValue:Int) {

    var v1 = SCNVector3(x: 0,y: 0,z: 0)
    var v2 = SCNVector3(x: 0,y: 0,z: 0)

    _textNode.removeFromParentNode()
    _counterValue = counterValue

    let newText = SCNText(string: String(format: "%08d", counterValue), extrusionDepth:sDepth)
    newText.font = UIFont (name: "Arial", size: 3)
    newText.firstMaterial!.diffuse.contents = UIColor.whiteColor()
    newText.firstMaterial!.specular.contents = UIColor.whiteColor()

    _textNode = SCNNode(geometry: newText)
    _textNode.getBoundingBoxMin(&v1, max: &v2)

    let dx:Float = Float(v1.x - v2.x)/2.0
    let dy:Float = Float(v1.y - v2.y)
    _textNode.position = SCNVector3Make(dx, dy, Float(sDepth/2))

    node.addChildNode(_textNode)

}

我留下了几个全局变量,但应该有意义。

感谢大家的帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift Scenekit - 居中 SCNText - getBoundingBoxMin:Max 问题 的相关文章

随机推荐

  • 通过 TFS 发布定义中的电子邮件批准进行持续集成

    我正在使用 Microsoft Visual Studio Team Foundation Server 版本 14 102 25423 0 作为贵公司持续集成部署的一部分 我想实现以下内容 我创建了一个发布定义 并在其下配置了两个环境 Q
  • Android意图系统背后的基本原理

    我一直在寻找对此的解释 但找不到 我在一次工作面试中被问到为什么 Android 不允许通过意图传递任何类型 我很清楚可能性 序列化 实现 Parcelable 接口 捆绑等 我想了解拒绝有意传递自定义类型 对象的决定背后的基本原理 我被引
  • 返回之前测试属性是否不为 Null

    我有以下财产 public MyType MyProperty get set 我想更改此属性 以便如果值为空 它将首先填充该值 然后返回它 但是without使用私有成员变量 例如 如果我这样做 public MyType MyPrope
  • Sympy:指数相乘而不是总和指数相乘

    我正在搜索如何告诉 SymPy 使用指数乘法而不是总和的指数 也就是说 它当前给我 exp a b 我想要得到 exp a exp b 一定有一个相当简单的方法 但我似乎找不到 你可以使用expand http docs sympy org
  • 具有可变单元格大小的 UICollectionView

    我在 UICollectionView 中单元格的大小方面遇到了一些困难 在android中 你可以轻松地 包裹 cell的大小 就像在 iOS 中一样 您有一个函数调用 GetCell 您可以决定它的大小 iOS 中的区别在于 在 UIC
  • 逐行检查列中是否存在值并逐行更新新列

    在 R 中 如何检查每行列表中的任何值 例如 2 3 或 4 是否出现在三列中的任何一列中 然后更改第四列中的该行 假设我有一个 df A B C D 1 1 1 2 1 1 3 1 1 我想写 没有for循环 如果第 n 行 A 列或 B
  • 查找给定纬度和经度坐标的州

    我有一组 900 个纬度和经度坐标 我需要一个相对简单的方法来查找这些坐标引用的 州 如果有帮助的话 数据是excel格式的 谷歌提供了一个地理编码 https developers google com maps documentatio
  • new PeerConnectionFactory() 在 android 上出现错误

    我正在尝试在 Android 上实现 WebRTC DataChannel 我想创建一个简单的对等连接对象 它将打开 DataChannel 以使用 WebRTC 通过网络发送数据 当我尝试创建 PeerConnection 对象时出现错误
  • ARG 或 ENV,在这种情况下使用哪一个?

    这可能是一个微不足道的问题 但阅读文档ARG https docs docker com engine reference builder arg and ENV https docs docker com engine reference
  • Angular 服务 - 返回的对象类型是对象,而不是指定的通用类型

    我有一个 angular5 服务 它执行 HTTP 获取并返回特定类型 如下所示 public getProductByIDproductId string Observable
  • 是否可以确定一个类型是否是作用域枚举类型?

    是否有类型特征 或者是否可以编写类型特征is scoped enum
  • 忽略 Scala 组合器解析器中的 C 风格注释

    让我的解析器尊重 忽略 C 风格注释的最简单方法是什么 我对两种评论类型都感兴趣 但也欢迎仅针对一种类型的解决方案 我目前只是扩展 JavaTokenParsers 您可以使用简单的正则表达式 只要不嵌套注释即可 把它放进去whiteSpa
  • 如何在 OpenLayers 中获取所选功能的事件或 DOM 元素

    我正在实现 OpenLayers SelectFeature 控件 并尝试将 JQuery UI 对话框小部件放置在所选功能的正上方 要使用 JQuery UI Position 实用程序 它需要 DOM 元素或事件 SelectFeatu
  • 在 Django 模型中使用 Trigram (gin_trgm_ops) 创建 Gin 索引

    django contrib postgres 的新 TrigramSimilarity 功能非常适合解决我遇到的问题 我用它作为搜索栏来查找难以拼写的拉丁名字 问题是名字超过 200 万个 搜索时间比我想要的要长 我想在三元组上创建一个索
  • Pandas:检查列值是否小于任何先前的列值

    我想检查 c 列的任何值是否小于所有先前的列值 在我当前的方法中 我使用 pandas diff 但它只让我与以前的值进行比较 import pandas as pd df pd DataFrame c 1 4 9 7 8 36 df di
  • REST 中的资源和资源表示有什么区别?

    我是 REST 新手 刚刚开始阅读一些教程 真正让我困惑的一件事是 txt xml json 形式的内容是什么 资源还是资源表示形式 一定是后者吧 由于资源可以是视频 音频或其他 MIME 类型 以下面的例子为例 假设我得到的描述类似于 R
  • 长时间等待向 Service Worker 发出请求

    我注意到 等待服务工作人员响应缓存中的项目的时间并不像您预期 的那么快 我发现两者的等待时间相同sw precache和一个定制的书面服务人员 造成此等待时间的可能原因是什么 如何减少它 My fetch自定义 Service Worker
  • ggplot错误的颜色分配

    颜色到十六进制值的分配是错误的 我不明白为什么 在将十六进制颜色添加到数据框之前我对它们进行了排序data然后在 ggplot2 函数中使用 我以为这样就能解决问题 但事实并非如此 我还创建了向量col其中包含十六进制以及 rgb 颜色值
  • Mod_Rewrite 不适用于 codeigniter 站点

    我为我的 codeigniter 站点尝试了 modrewrite 但是当我进入 htaccess 文件时 已经有一个了 RewriteEngine on RewriteCond 1 index php combine php images
  • Swift Scenekit - 居中 SCNText - getBoundingBoxMin:Max 问题

    享受 SCNText 上的alignmentMode 选项带来的乐趣 谷歌搜索了一下 看起来alignmentMode和containerFrame有问题 我发现的替代方案建议使用获取边界框功能来查找文本大小 然后手动进行相应调整 很好 除