Создание массива SCNVector3 с использованием Float в 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  
        }
    }
}

1 ответ

Решение

Для какой платформы это?

если это для Mac OS, то вы должны использовать CGFloat, а не Float

РЕДАКТИРОВАТЬ:

Вы не можете назначить кортеж для vector3. в вашем коде вам нужно инициализировать новый вектор 3 и присвоить его вашему массиву

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)

Другие вопросы по тегам