Objective c 如何访问和初始化simd类型的组件?
我有一些simd_float3和simd_float4x4类型的变量。 如何访问单个组件,例如float3的y组件 当我有一个由16个浮点组成的数组时,如何初始化浮点4x4?使用Objective c 如何访问和初始化simd类型的组件?,objective-c,simd,Objective C,Simd,我有一些simd_float3和simd_float4x4类型的变量。 如何访问单个组件,例如float3的y组件 当我有一个由16个浮点组成的数组时,如何初始化浮点4x4?使用simd_matrix();例如: _transform = simd_matrix( (simd_float4){ sxc, -sxs, 0.0f, 0.0f }, (simd_float4){ sys, syc, 0.0f, 0.0f }, (simd_flo
simd_matrix();例如:
_transform = simd_matrix(
(simd_float4){ sxc, -sxs, 0.0f, 0.0f },
(simd_float4){ sys, syc, 0.0f, 0.0f },
(simd_float4){ 0.0f, 0.0f, 1.0f, 0.0f },
(simd_float4){ tx, ty, 0.0f, 1.0f }
);
相关功能有simd\u make\u float2(0.0f,0.0f)
等
您可以像访问数组一样访问元素x
是[0]
,y
是[1]
,等等
.使用simd_矩阵();例如:
_transform = simd_matrix(
(simd_float4){ sxc, -sxs, 0.0f, 0.0f },
(simd_float4){ sys, syc, 0.0f, 0.0f },
(simd_float4){ 0.0f, 0.0f, 1.0f, 0.0f },
(simd_float4){ tx, ty, 0.0f, 1.0f }
);
相关功能有simd\u make\u float2(0.0f,0.0f)
等
您可以像访问数组一样访问元素x
是[0]
,y
是[1]
,等等
.我正在使用simd\u make\u float3
来生成向量,但是我无法通过使用.x
的点表示法来访问单个元素。我有一个编译器error@Raildex我对.x
、.y
等的理解是错误的。请改用数组元素语法([0]
等)。好的,看起来使用数组语法进行访问似乎是可行的。是否可以使用memcpy将我的16浮点数组转换为float4x4?@Raildex是的,为什么不可以。@Raildex请确保您了解行或列主矩阵表示法的工作原理。您最好一次构建一行矩阵(simd\u matrix\u from\u rows()
)或一次构建一列矩阵(simd\u matrix()
)。我已经在使用simd\u make\u float3
来生成向量,但我无法使用带有.x
的点表示法来访问单个元素。我有一个编译器error@Raildex我对.x
、.y
等的理解是错误的。请改用数组元素语法([0]
等)。好的,看起来使用数组语法进行访问似乎是可行的。是否可以使用memcpy将我的16浮点数组转换为float4x4?@Raildex是的,为什么不可以。@Raildex请确保您了解行或列主矩阵表示法的工作原理。您最好一次构建一行矩阵(simd\u matrix\u from\u rows()
)或一次构建一列矩阵(simd\u matrix()
)。