MATLAB绕原点旋转一个点
时间: 2025-02-25 14:06:16 浏览: 33
实现点绕原点旋转的方法
在 MATLAB 中,可以通过矩阵运算来实现二维平面内任意点绕原点的旋转变换。对于给定的角度 θ,可以构建对应的旋转矩阵 R(θ),并通过该矩阵乘以待旋转点的位置向量 (x, y)^T 来完成旋转操作。
构建旋转矩阵
设有一个点 P(x,y),要将其顺时针方向旋转角度 θ,则可定义如下形式的旋转矩阵:
[R(\theta)=\begin{bmatrix}\cos{\theta}& \sin{\theta}\-\sin{\theta} & \cos{\theta}\end{bmatrix}]
通过此矩阵作用于原始坐标得到新的坐标位置 (P'(x',y')) 如下所示:
[P'=RP=\begin{bmatrix}\cos{\theta}& \sin{\theta}\-\sin{\theta} & \cos{\theta}\end{bmatrix} \cdot \begin{bmatrix}x\y\end{bmatrix}][^1]
MATLAB代码实例
下面给出一段简单的MATLAB脚本用于演示单个点绕着原点按指定角度进行旋转的过程:
function rotated_point = rotatePoint(point, angle_degrees)
% 将输入角度由度数转换成弧度制
theta = deg2rad(angle_degrees);
% 定义旋转矩阵
rotation_matrix = [cos(theta), sin(theta); ...
-sin(theta), cos(theta)];
% 对传入的点执行旋转操作
rotated_point = rotation_matrix * point;
end
% 测试用例
original_point = [3; 4]; % 初始点位
rotation_angle = 90; % 设置旋转角度为90°
rotated_result = rotatePoint(original_point, rotation_angle);
disp(['Original Point: ', num2str(original_point)]);
disp(['Rotated Result:', num2str(rotated_result)]);
上述程序展示了如何创建一个名为 rotatePoint
的函数接受两点参数——一个是表示目标点坐标的列向量 [x;y]
,另一个是要施加在其上的旋转角度(单位:度)。接着,在主程序部分调用了这个辅助函数,并打印出了未经过任何变化前后的坐标值对比情况。
相关推荐


















