三维物体绕任意轴的旋转

xiongzm 2008-06-18 05:11:28
最近碰到的问题是:对一系列的点绕任意轴旋转,求旋转后的坐标。
比如简单一点的:绕过原点的一直线旋转,要经过几次旋转变换得到,写起来比较麻烦。
有什么库函数实现这个功能吗,多谢!

OpenGL库中有这样的函数吗?我的输入是一系列点的坐标,希望输出得到变换后的坐标。
...全文
527 点赞 收藏 3
写回复
3 条回复
youxia000 2008年07月14日
不好意思 我没用opengl

最近学习了下 你可以 看看 glRotate()
回复 点赞
youxia000 2008年06月24日
做过这个,没有法线现成的东西

自己写的矩阵变换,

一般要分三步,

先把要旋转的轴转到 与Z轴重合M1, 对Z轴做旋转Mz, 把旋转轴从Z轴转回来 M1(-1)
回复 点赞
carfieldlee 2008年06月20日
这几天也在整这个
绕任意轴n旋转角度θ的变换矩阵

cosTheta = cos(θ);
sinTheta = sin(θ);
nx,ny,nz为 轴n的向量标准化后三个分量

Matri4D matrix(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1); //初始化

matrix[0][0] = nx * nx * ( 1 - cosTheta ) + cosTheta;
matrix[0][1] = nx * ny * ( 1 - cosTheta ) + nz * sinTheta;
matrix[0][2] = nx * nz * ( 1 - cosTheta ) - ny * sinTheta;
matrix[1][0] = nx * ny * ( 1 - cosTheta ) - nz * sinTheta;
matrix[1][1] = ny * ny * ( 1 - cosTheta ) + cosTheta;
matrix[1][2] = ny * nz * ( 1 - cosTheta ) + nx * sinTheta;
matrix[2][0] = nx * nz * ( 1 - cosTheta ) + ny * sinTheta;
matrix[2][1] = ny * nz * ( 1 - cosTheta ) - nx * sinTheta;
matrix[2][2] = nz * nz * ( 1 - cosTheta ) + cosTheta;

回复 点赞
发动态
发帖子
机器视觉
创建于2007-08-27

2565

社区成员

1.4w+

社区内容

图形图像/机器视觉
社区公告
暂无公告