Я хочу сдвинуть SCNPlane
, как показано на рисунке ниже, но затем по оси Y.Таким образом, B и C перемещаются вверх вместо A и B вправо.Я знаю, что для этого необходима матрица преобразования, поэтому я попытался создать такую матрицу преобразования, как фрагмент кода ниже.Но ни один из возможных вариантов не дает желаемого результата.Кроме того, SCNPlane
вращается на -90 вокруг оси X.Может быть, кто-то может показать мне, что я делаю неправильно.
var transformMatrix = matrix_float4x4()
transformMatrix.columns.0 = [1.0, tan(60), 0.0, 0.0]
transformMatrix.columns.1 = [0.0, 1.0, 0.0, 0.0]
transformMatrix.columns.2 = [0.0, 0.0, 1.0, 0.0]
transformMatrix.columns.3 = [0.0, 0.0, 0.0, 1.0]
let newTransform = matrix_multiply(transformMatrix, simd_float4x4((transformPlane?.transform)!))
transformPlane?.simdTransform = newTransform
Я получил матрицу преобразования из ответа на этот вопрос (номер 3).