空间(vector3)位置求旋转算法前提不借助外部库,已知空间内任意一点 求其以原点位置旋转的度数.rotX,rotY,rotZ

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 02:32:53

空间(vector3)位置求旋转算法前提不借助外部库,已知空间内任意一点 求其以原点位置旋转的度数.rotX,rotY,rotZ
空间(vector3)位置求旋转算法
前提不借助外部库,已知空间内任意一点 求其以原点位置旋转的度数.
rotX,rotY,rotZ

空间(vector3)位置求旋转算法前提不借助外部库,已知空间内任意一点 求其以原点位置旋转的度数.rotX,rotY,rotZ
//
void rotAxis3D_Tech_Matrix(float theta, float nx, float ny, float nz, float (&ptIn)[3], float (&ptOut)[3])
{
float len = sqrtf(nx * nx + ny * ny + nz * nz); //normalize vector
nx /= len; ny /= len; nz /= len;
ptOut[0] = ptIn[0] * (cosf(theta) + nx * nx * (1 - cosf(theta))) + //transform by matrix
ptIn[1] * (nx * ny * (1 - cosf(theta)) - nz * sinf(theta)) +
ptIn[2] * (nx * nz * (1 - cosf(theta) + ny * sinf(theta)));
ptOut[1] = ptIn[0] * (nx * ny * (1 - cosf(theta)) + nz * sinf(theta)) +
ptIn[1] * (ny * ny * (1 - cosf(theta)) + cosf(theta)) +
ptIn[2] * (ny * nz * (1 - cosf(theta)) - nx * sinf(theta));
ptOut[2] = ptIn[0] * (nx * nz * (1 - cosf(theta) - ny * sinf(theta))) +
ptIn[1] * (ny * nz * (1 -cosf(theta)) + nx * sinf(theta)) +
ptIn[2] * (nz * nz * (1 - cosf(theta)) + cosf(theta));
}
直接给出个算法吧,这个算法直接用矩阵作的,在一般情况下也就不用四元数了.
晕,哥哥看错了,你是问OpenGL,那把上面公式中的矩阵提取出来,注意到这个矩阵是三阶的,最后一行是给你设置平移参数的.可以简单设置为 0 0 0 1
构造好矩阵之后,调用glLoadMatrixf设置ModelView矩阵就OK了,
上面矩阵如何提取?
(cosf(theta) + nx * nx * (1 - cosf(theta)))
(nx * ny * (1 - cosf(theta)) - nz * sinf(theta))
(nx * nz * (1 - cosf(theta) + ny * sinf(theta))) 这是第一列,其他两列也这么提取就可以了
当然这是假设没有平移和缩放变换的

空间(vector3)位置求旋转算法前提不借助外部库,已知空间内任意一点 求其以原点位置旋转的度数.rotX,rotY,rotZ 空间解析几何,求旋转面方程!rt 求算法:opengl 绕任意轴旋转后的坐标 粒子群算法中粒子的位置与搜索空间是什么关系? 怎么判断一个点是否在空间三维物体内部(求算法) 怎么判断一个点是否在空间三维物体内部(求算法) 已知空间曲线求旋转面方程比方说绕x轴旋转.变量x不变.y z怎么变化的. 关于求旋转曲面的问题怎样求空间一条直线饶坐标轴旋转所得的旋转曲面方程 如:x/1=(y+2)/-3=(z+7)/-2饶Z轴旋转所得的旋转曲面方程 空间直角坐标系上的某点按原点旋转后的坐标怎么求? 求一个对无序序列求中位数的算法,要求时间复杂度为O(n),不要使用空间换时间的算法,如计数排序. 黄金比例,1.4米高的门,按两个合页,求合页位置及算法 交流电机三相绕组基波合成圆形旋转磁场的幅值大小,空间位置,转速和转向各与哪些因素有关? unity3d Instantiate随机范围位置的问题Instantiate(mObjects[0],new Vector3(Random.Range(this.transform.position.x-25,this.transform.position.x+25),1F,-2F),Quaternion.Euler(new Vector3(90F,180F,0F)));,要想同时在z方向也一样的效果, 空间旋转,平面旋转,通常都是哪个轴向? 空间曲线绕z轴旋转,求旋转曲面的方程{z=x平方 x平方 + y平方 = 1} 求沿AB旋转一周后形成的物体所占的空间的大小单位cm 空间向量旋转地问题已知空间中的单位向量 a,ba 旋转一个角度得到 a1保持 a、b 的方向关系不变(就跟一个固定支架在旋转的情况一样),求 旋转后的 ba 沿直线旋转至 a1 已知两空间向量,其中一向量绕旋转轴绕一定角度和另一向量平行,求旋转轴和旋转角度.和已知一向量、旋转轴和旋转角,求旋转后向量.