clear;
clc;
n=10;
A=rand(2,n); %随机生成10组原始坐标
angleDeg=30; %旋转角度,30代表逆时针旋转30°
angleRad = deg2rad(angleDeg); %将角度从度转换为弧度
center=[1,2]; %旋转中心点
T=zeros(2,2); %平面内的坐标旋转矩阵
T(1,1)=cos(angleRad);
T(1,2)=-sin(angleRad);
T(2,1)=sin(angleRad);
T(2,2)=cos(angleRad);
% 计算旋转后的坐标
B=A; % 创建旋转后的坐标矩阵B
B(1,:)=B(1,:)-center(1,1); % 将旋转中心平移到旋转中心(即原点) ,所以x坐标也平移
B(2,:)=B(2,:)-center(1,2); % 将旋转中心平移到旋转中心(即原点) ,所以y坐标也平移
B=T*B; % 应用旋转矩阵
B(1,:)=B(1,:)+center(1,1); % 将旋转后的点平移回原来的位置
B(2,:)=B(2,:)+center(1,2); % 将旋转后的点平移回原来的位置
% B即为旋转后的坐标
matlab二维平面内,坐标绕任意点旋转的代码
于 2024-08-24 08:12:18 首次发布