在 Swift 中使用 Float 创建 SCNVector3 数组

Creating an array of SCNVector3 using Float in Swift

我在数组中有一堆 Z 坐标。我想使用这些值创建几何图形,因此我创建了一个 SCNVector3 数组。 X 和 Y 值将使用简单的嵌套循环计算,但 Z 值将来自我的数组。

Xcode 告诉我:无法将类型 '(x: Float, y: Float, z: Float)' 的值分配给类型 SCNVector3

我是不是犯了一个愚蠢的错误?

我现在的代码是:

var width = 10
var height = 20
var zDepth = [Float]()  
var verts = [SCNVector3]()  
var i = 0  
for y in 0 ..< height {  
    for x in 0 ..< width {  
        if i < (width*height) {  
            vert[i] = (x: Float(x), y: Float(y), z: zDepth[i])  
            i += 1  
        }
    }
}

这是什么平台?

如果是 mac os,那么你必须使用 CGFloat 而不是 Float

编辑:

您不能将元组分配给 vector3。在您的代码中,您需要初始化一个新的 vector3 并将其分配给您的数组

var width = 10
var height = 20
var zDepth = [Float]()
var verts = [SCNVector3]()
var i = 0
for y in 0 ..< height {
    for x in 0 ..< width {
        if i < (width*height) {
            verts[i] = SCNVector3(x: Float(x), y: Float(y), z: zDepth[i])
            i += 1
        }
    }
}

EDIT2:我取出了 cgfloat(我一直在考虑 cgfloats)