汤姆如何在我的应用程序中在 swift 4 中显示 3D 饼图



我正在尝试在 swift 4 的应用程序中显示 3D 饼图。但找不到任何解决方案。有人帮助我或给我任何建议吗?

private func createPieChart() -> SCNNode {
    let aNode = SCNNode()
    var total:Float = 0.0
    //let numRows = data.numberOfRows()
    let numColumns = data.numberOfColums()
    let i = 0
    for j in 0 ..< numColumns {
        let val = data.valueForIndexPath(row:i, column: j)
        total = total + val
    }
    var startDeg:Float = 0.0
    var startRad:Float = 0.0
    for j in 0 ..< numColumns {
        let val = data.valueForIndexPath(row:i, column: j)
        let pct = val*360.0/total
        startRad = Float(startDeg) * Float(M_PI) / Float(180.0)
        let endDeg = startDeg + pct - 1.0
        let endRad:Float = Float(endDeg) * Float(M_PI) / Float(180.0)
        let circlePath = UIBezierPath()
        circlePath.move(to: CGPoint.zero)
        circlePath.addArc(withCenter: CGPoint.zero, radius: 20.0, startAngle:CGFloat(startRad), endAngle: CGFloat(endRad), clockwise: true)
        startDeg = endDeg + 1
        let node = SCNNode(geometry: SCNShape(path:circlePath, extrusionDepth: 5.0))
        node.geometry?.firstMaterial?.diffuse.contents = data.colorForIndexPath(row: i, column: j)
        aNode.addChildNode(node)
    }
    return aNode
}

最新更新