matlab二维平面内,坐标绕任意点旋转的代码

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即为旋转后的坐标
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值