[原创]Matlab:将任意曲线绕其中点旋转任意角度
写代码时遇到了这个问题。话不多说,直接上Matlab代码:
x=-10:0.001:10;
y=sin(x);
plot(x,y);hold on;
middle=fix(length(x)/2);
rx0=x(middle);
ry0=y(middle);
angle=15;
angle=pi/180*angle;
for ii=1:length(y)
x0=(x(ii)-rx0)*cos(angle)-(y(ii)-ry0)*sin(angle)+rx0;
y0=(x(ii)-rx0)*sin(angle)+(y(ii)-ry0)*cos(angle)+ry0;
rotate_x(ii)=x0;
rotate_y(ii)=y0;
end
plot(rotate_x,rotate_y);
angle为正数时,表示逆时针旋转;否则为顺时针旋转。如下图,黄色曲线为旋转后的结果。