float3 rotation(float3 mp, float3 pos) {
float s = 0.0f;
float c = 0.0f;
struct mat3 rotX;
s = sin(mp.x); c = cos(mp.x);
rotX.x = (float3)(1.0f, 0.0f, 0.0f);
rotX.y = (float3)(0.0f, c, -s);
rotX.z = (float3)(0.0f, s, c);
struct mat3 rotY;
s = sin(mp.y); c = cos(mp.y);
rotY.x = (float3)(c, 0.0f, s);
rotY.y = (float3)(0.0f, 1.0f, 0.0f);
rotY.z = (float3)(-s, 0.0f, c);
struct mat3 rotZ;
s = sin(mp.z); c = cos(mp.z);
rotZ.x = (float3)(c, -s, 0.0f);
rotZ.y = (float3)(s, c, 0.0f);
rotZ.z = (float3)(0.0f, 0.0f, 1.0f);
float3 m2x = (float3)(rotY.x.x, rotY.y.x, rotY.z.x);
float3 m2y = (float3)(rotY.x.y, rotY.y.y, rotY.z.y);
float3 m2z = (float3)(rotY.x.z,
OPENCL ROTATION x y z axis
最新推荐文章于 2021-12-16 05:56:51 发布
这段代码展示了如何使用OPENCL进行三维坐标系的x、y、z轴旋转。通过构建旋转矩阵并应用逐元素乘法,实现了输入位置向量的旋转操作。
摘要由CSDN通过智能技术生成