ARKit如何绘制测量比例

时间:2018-07-27 13:54:16

标签: ios swift arkit

我不知道该怎么做。请不要关闭此问题,我需要建议或任何提示来实施它。

来源https://www.youtube.com/watch?v=4uHyHRKmxZk

enter image description here

我创建了一个SCNCylinder的节点,并通过updateAtTime方法从目标绘制到屏幕中心

首先,我认为它是使用TextNode绘制的。所以我尝试关注

在该类中,我可以通过方法帮助在传递给UnitLength的每个单元上绘制一个节点

func drawOtherBaseUnit(height:Float,intoThe unitType:UnitLength,toTheNode zAxisNode:SCNNode) {

    print("---------------------------------------------------------------------")
    let distanceInTarget = Converter.convert(value: Double(height), to: unitType).output + 1
    print("DISTANCE",distanceInTarget)
    print("---------------------------------------------------------------------")

    var text = ""
    switch unitType {
        case .inches:
            text = "INCH"
    case .centimeters:
            text = "CM"

    default:
        return
    }

    if !distanceInTarget.isNaN {
        var  distance = Int(distanceInTarget)
        var i = 0
        while  distance > 0 {
            print("distance ",distance)
            let node = UnitNode(withPosition: SCNVector3Make(0, 0, 0), radius: CGFloat(Converter.convert(value: 0.1, from: unitType, to: UnitLength.meters).output),text:"\(text) \(i)",forType:unitType)
            let valueIncreaseOnAsPerTarget = Int(distanceInTarget) -  distance
            let valueToIncreaseMeter = Converter.convert(value: Double(valueIncreaseOnAsPerTarget), from: unitType, to: UnitLength.meters).output
            node.position.y = -Float(valueToIncreaseMeter) 
            node.position.x = 0 
            zAxisNode.addChildNode(node)
            distance -=  1
            i  += 1
        }
    }
}

UnitNode类是绘制SCNText和其他一些节点。

这很好。我可以看到每个提供的节点。

enter image description here

但是,如果我对英制使用drawOtherBaseUnit且CM UI滞后,则它并不平滑。

实现所需输出的正确方法吗?

0 个答案:

没有答案