二维,三维坐标旋转算法(公式)

简介:

本文是有关二维,三维坐标旋转算法笔记。

1.二维坐标旋转。二维坐标旋转公式图下:

void Rotate2(double x1, double y1, double alpha, double& x2, double& y2)
{

x2 = x1 * cos(alpha) - y1 * sin(alpha);
y2 = x1 * sin(alpha) + y1 * cos(alpha);

}

2.三维坐标旋转

在处理三维坐标旋转时,使用标准的数学公式是沒有问题的。但是把二维坐标旋转调用三次,也能够实现三维坐标的旋转,而且有易读易懂,処理速度快的长处。

void Rotate3(double x1, double y1, double z1,

         double alphaX,double alphaY,double alphaZ, 
         double& x2, double& y2, double& z2)

{

//Z Axis Rotation
double x3 = x1 * cos(alphaZ) - y1 * sin(alphaZ);
double y3 = x1 * sin(alphaZ) + y1 * cos(alphaZ);
double z3 = z1;

//Y Axis Rotation
double z4 = z3 * cos(alphaY) - x3 * sin(alphaY);
double x4 = z3 * sin(alphaY) + x3 * cos(alphaY);
double y4 = y3;

//X Axis Rotation
y2 = y4 * cos(alphaX) - z4 * sin(alphaX);
z2 = y4 * sin(alphaX) + z4 * cos(alphaX);
x2 = x4;

}

本文转自博客园知识天地的博客,原文链接:二维,三维坐标旋转算法(公式),如需转载请自行联系原博主。

相关文章
|
2月前
|
算法 索引 Python
Python3实现旋转数组的3种算法
Python3实现旋转数组的3种算法
24 0
|
5月前
|
机器学习/深度学习 算法
class069 从递归入手三维动态规划【算法】
class069 从递归入手三维动态规划【算法】
32 0
|
1天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
29天前
|
算法
算法系列--动态规划--背包问题(5)--二维费用背包问题(下)
算法系列--动态规划--背包问题(5)--二维费用背包问题(下)
14 0
|
29天前
|
算法
算法系列--动态规划--背包问题(5)--二维费用背包问题(上)
算法系列--动态规划--背包问题(5)--二维费用背包问题(上)
21 0
|
2月前
|
算法
基于Harris角点的室内三维全景图拼接算法matlab仿真
本文介绍了使用Harris角点检测算法构建室内三维全景图的过程。在matlab2022a环境下,通过检测、匹配特征点并进行图像拼接,实现全景图的创建。算法涉及图像梯度计算、协方差矩阵、响应函数及非极大值抑制。示例代码展示了读取图像、调整大小并应用角点检测函数进行图像混合的步骤。最后,通过图像子区显示验证了拼接效果。
|
3月前
|
存储 算法 机器人
基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真
基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真
|
3月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
103 0
|
3月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
53 0
|
4月前
|
存储 算法 搜索推荐
Java常见算法-算法与程序、公式、数据结构的区别
算法、程序、公式和数据结构是计算机科学中的基本概念,它们之间有着密切的联系,但各自有着独特的含义和作用。