三维空间里一个点绕矢量旋转后的新的点的坐标
来源:互联网 发布:类似于tumblr的软件 编辑:程序博客网 时间:2024/05/16 12:46
在三维空间里一个点绕X轴 Y轴 Z轴旋转一定弧度后新的点的坐标是容易计算的,问题是如果它所绕的旋转轴是一个任意矢量(x,y,z)的话,怎么知道旋转angle弧度后新的点的坐标呢?
在OPENGL里有一个函数glRotatef(angle,x,y,z)可以实现此功能,它的实现是左乘一个矩阵
这里假定坐标轴是右手系的(opengl的坐标轴是右手系的,和大学数学教课书里一样),其中 c = cos(angle),s = sin(angle),angle是从矢量(x,y,z)的正向看去逆时针方向旋转所成的角度(也就是右手系法则里,把大拇指指向矢量方向,其余四指沿逆时针方向环绕的角度为正的角度),矢量(x,y,z)必须是已经单位化了的且经过原点,这样就可算出:
new_x = (x2(1-c)+c) * old_x + (xy(1-c)-zs) * old_y + (xz(1-c)+ys) * old_z
new_y = (yx(1-c)+zs) * old_x + (y2(1-c)+c) * old_y + (yz(1-c)-xs) * old_z
new_z = (xz(1-c)-ys) * old_x + (yz(1-c)+xs) * old_y + (z2(1-c)+c) * old_z
(old_x,old_y,old_z)是原来的点的坐标,(new_x,new_y,new_z)是旋转后的新的点的坐标
这个公式是怎么推导出来的我就不打算去深究了,这个问题困惑我好久了,比如一个矢量绕一个矢量旋转一定角度后得到新的矢量是什么,用它来计算就可以,可以分别计算矢量的起点和终点旋转后得到的新的点的坐标,也就得到了新的矢量。
- 三维空间里一个点绕矢量旋转后的新的点的坐标
- 一个 点绕另一个点旋转后的坐标
- 一个 点绕另一个点旋转后的坐标
- 利用四元树来计算一个坐标点绕任意轴旋转后,新坐标点的推导过程
- 三维空间里一个点绕坐标轴旋转
- 在平面中,一个点绕任意点旋转θ度后的点的坐标
- 在平面中,一个点绕任意点旋转θ度后的点的坐标
- 获取图片旋转后的坐标点
- 如何判断任意四个点可以组成矩形及正方形 && 点绕另外一个点旋转后的坐标
- 计算显示坐标旋转后点的坐标
- 一点绕另一点旋转某个角度后的点的坐标求解原理
- 获取一点绕另一点旋转一定角度后的点坐标
- 关于解决这个问题:从一个点(x,y)绕另一个点(x0,y0)旋转任意角度A后得到的坐标(x1,y1)的坐标是多少?
- 三维坐标点绕任意轴旋转的新坐标计算
- 三维坐标点绕任意轴旋转的新坐标计算
- 三角形外接圆的圆心,向量旋转问题,求点(x1,y1)绕点(0,0)旋转a后坐标
- opencv 图像仿射变换 计算仿射变换后对应特征点的新坐标 图像旋转、缩放、平移
- opencv 图像仿射变换 计算仿射变换后对应特征点的新坐标 图像旋转、缩放、平移
- Destroy and NoSQL (2010-09-02)
- Windows2003 IIS6.0启用Gzip功能
- list.h中宏list_entry宏的解析与应用
- 关于static之一二三
- 使用Application和SessionID实现在线用户列表统计
- 三维空间里一个点绕矢量旋转后的新的点的坐标
- 排序
- Qt-4.6动画Animation快速入门三字决
- 手机常用术语英文翻译
- Python 数据库技术内训资料
- 入門 04 - 第一個Spring程式。
- commons-validator.jar校验
- STL 之 算法
- SEMAT(软件工程方法和理论)