当前位置:网站首页>Draw a red lantern with MATLAB
Draw a red lantern with MATLAB
2022-07-05 22:04:00 【slandarer】
PART.1 Code instructions
The space left this time is really too small , The logo is not painted well , If you have the ability, you can complete it by yourself , This time, the code still uses the ellipse data generation function , However, the difference is that this time the data points are constructed by the rotation matrix :
% Ellipse data point generating function
function [X,Y]=getEllipse(Mu,XR,YR,theta,pntNum)
% Mu | Center point
% XR,YR | Before the rotation X,Y Half shaft length
% theta | Rotation Angle
% pntNum | Number of generated data points
tList=linspace(0,2*pi,pntNum);
X=cos(tList).*XR;
Y=sin(tList).*YR;
rotateMat=[cos(theta),-sin(theta);sin(theta),cos(theta)];
XY=rotateMat*[X;Y]+Mu(:);
X=XY(1,:);Y=XY(2,:);
end
This code also uses various sinusoidal functions after rotation , Therefore, the last local function also contains a local function of rotating data .
% Data rotation angle
function [X,Y]=rotateData(X,Y,theta)
rotateMat=[cos(theta),-sin(theta);sin(theta),cos(theta)];
XY=rotateMat*[X;Y];
X=XY(1,:);Y=XY(2,:);
end
PART.2 Complete code
function xuerongrong
ax=gca;
ax.DataAspectRatio=[1 1 1];
ax.XLim=[-5 5];
ax.YLim=[-5 5];
hold(ax,'on')
% Draw the arm
[X,Y]=getEllipse([-1,-2.5],.4,.6,-pi/5,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.7,-1.89],.4,.6,pi/3.6,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
% Draw legs
rectangle('Position',[-.95,-4.2,1.3,1],'Curvature',.8,...
'FaceColor',[182,50,2]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
rectangle('Position',[-1,-3.9,1.4,1],'Curvature',.8,...
'FaceColor',[246,168,68]./255,'EdgeColor',[246,168,68]./255,'LineWidth',1.8)
rectangle('Position',[-1,-3.8,1.4,1],'Curvature',.8,...
'FaceColor',[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
rectangle('Position',[.5,-4.2,1.2,2],'Curvature',.8,...
'FaceColor',[182,50,2]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
rectangle('Position',[.45,-3.9,1.3,2],'Curvature',.8,...
'FaceColor',[246,168,68]./255,'EdgeColor',[246,168,68]./255,'LineWidth',1.8)
rectangle('Position',[.45,-3.8,1.3,2],'Curvature',.8,...
'FaceColor',[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
% Draw the body
rectangle('Position',[-.9,-3.5,2.6,3],'Curvature',.6,...
'FaceColor',[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
% Draw the head
[X0,Y0]=getEllipse([-.15,.65],2.9,2.3,pi/11,200);
fill(X0,Y0,[212,3,28]./255,'EdgeColor',[153,12,40]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.15,.65],2.7,2.3,pi/11,200);
plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.15,.65],1.7,2.3,pi/11,200);
plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.8)
X=linspace(0,pi,100);Y=sin(X);
X=X.*1.4;Y=Y.*0.2;
[X,Y]=rotateData(X,Y,-pi/11);
plot(Y+.41,X-1.46,'Color',[236,136,74]./255,'LineWidth',2)
plot(X0,Y0,'Color',[212,3,28]./255,'LineWidth',3)
% Draw clouds on your face
[X,Y]=getEllipse([-1.2,-.3],.5,.6,pi/3.4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-1.3,.4],.45,.55,-pi/3.4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.65,1],.45,.7,-pi/4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([0,1],.45,.7,-pi/4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.8,.5],.4,.5,pi/5,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.63,.92],.4,.5,pi/12,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.3,.25],1.6,1,pi/13,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.95,1.42],.3,.3,pi/12,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
% Draw powder Blusher
[X,Y]=getEllipse([-1.1,-.5],.35,.35,pi/12,200);
fill(X,Y,[212,3,28]./255,'EdgeColor','none','FaceAlpha',.2)
[X,Y]=getEllipse([-1.1,-.5],.32,.32,pi/12,200);
fill(X+3,Y+.9,[212,3,28]./255,'EdgeColor','none','FaceAlpha',.2)
% Draw the eyes
[X,Y]=getEllipse([-.76,.16],.15,.24,pi/20,200);
fill(X,Y,[38,23,26]./255,'EdgeColor',[38,23,26]./255)
[X,Y]=getEllipse([1.25,.47],.15,.24,pi/20,200);
fill(X,Y,[38,23,26]./255,'EdgeColor',[38,23,26]./255)
[X,Y]=getEllipse([-.81,.21],.05,.05,pi/20,200);
fill(X,Y,[230,230,230]./255,'EdgeColor','none')
[X,Y]=getEllipse([1.2,.52],.05,.05,pi/20,200);
fill(X,Y,[230,230,230]./255,'EdgeColor','none')
% % Draw headdress
[X,Y]=getEllipse([-1.85,2.2],.48,.15,pi/20,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.7,2.4],.47,.2,pi/15,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.32,2.55],.47,.15,pi/15,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.2,2.6],.25,.14,pi/30,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
%
[X,Y]=getEllipse([-1.8,2.1],.08,.2,-pi/10,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.7,2.3],.08,.2,-pi/40,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.4,2.5],.08,.2,-pi/40,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.25,2.5],.04,.12,pi/10,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
% Paint golden moire
[X,Y]=getEllipse([-.3,3.6],.3,.35,pi/10-pi/5,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[246,168,68]./255,'LineWidth',2)
[X,Y]=getEllipse([-1,3.4],.3,.35,pi/10+pi/5,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[246,168,68]./255,'LineWidth',2)
[X,Y]=getEllipse([-.7,3.6],.35,.4,pi/10,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[246,168,68]./255,'LineWidth',2)
X=linspace(0+pi/10,pi-pi/10,200);
Y=sin(X);
X=X.*.4;Y=Y.*.3;
[X,Y]=rotateData(X,Y,pi/10);
plot(X-1.3,Y+3.2,'Color',[250,250,250]./255,'LineWidth',7)
% Draw a small hat
[X,Y]=getEllipse([0,0],1,.9,pi/12,200);Y=Y-.3;
Y(Y<=0)=Y(Y<=0).*.2;
[X,Y]=rotateData(X,Y,pi/14);
fill(X-.4,Y+2.8,[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
% Draw the snow on your head
X1=linspace(-2*pi/3,(5+2/3)*pi,200);
Y1=sin(X1);
X2=linspace(0,pi,200);
Y2=sin(X2);
X1=X1.*.22;Y1=Y1.*.1;
[X1,Y1]=rotateData(X1,Y1,pi/20);
X1=X1-1.9;Y1=Y1+2.2;
X2=X2.*1.3;Y2=Y2.*.58;
[X2,Y2]=rotateData(X2,Y2,pi/16);
X2=X2-2.4;Y2=Y2+2.1;
fill([X1,X2(end:-1:1)],[Y1,Y2(end:-1:1)],[250,250,250]./255,...
'EdgeColor',[240,240,240]./255,'LineWidth',2.5)
% Draw belly
[X,Y]=getEllipse([.6,-2.5],.8,.65,pi/12,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[230,230,230]./255,'LineWidth',1.8)
% Draw a scarf
X=[-.35,-.39];
Y=[-1.8,-2.5];
plot(X,Y-.05,'Color',[246,168,68]./400,'LineWidth',9)
plot(X,Y,'Color',[246,168,68]./255,'LineWidth',8)
X=linspace(0,pi,100);Y=sin(X);
X=X.*.9;Y=-Y.*.2;
[X,Y]=rotateData(X,Y,pi/14);
plot(X.*1.05-1.05,Y-1.8,'Color',[246,168,68]./400,'LineWidth',9)
plot(X-.99,Y-1.8,'Color',[246,168,68]./255,'LineWidth',8)
% Text
text(.6,-2.5,'BEIJING 2022','HorizontalAlignment','center','Color',[.2,.2,.2],...
'FontSize',4.5,'FontName','Comic Sans MS','Rotation',15,'FontWeight','bold')
% sign
X=linspace(0,5*pi/6,100);Y=-sin(X);
X=X.*.13;Y=Y.*.13;
[X,Y]=rotateData(X,Y,-2*pi/3);
plot(X+.6,Y-2.7,'Color',[212,62,80]./400,'LineWidth',1.5)
[X,Y]=rotateData(X,Y,pi/4);
plot(X+.65,Y-2.75,'Color',[51,119,180]./400,'LineWidth',1.5)
[X,Y]=rotateData(X,Y,pi/4);
plot(X+.7,Y-2.8,'Color',[174,222,93]./400,'LineWidth',1.5)
% =========================================================================
% Ellipse data point generating function
function [X,Y]=getEllipse(Mu,XR,YR,theta,pntNum)
% Mu | Center point
% XR,YR | Before the rotation X,Y Half shaft length
% theta | Rotation Angle
% pntNum | Number of generated data points
tList=linspace(0,2*pi,pntNum);
X=cos(tList).*XR;
Y=sin(tList).*YR;
rotateMat=[cos(theta),-sin(theta);sin(theta),cos(theta)];
XY=rotateMat*[X;Y]+Mu(:);
X=XY(1,:);Y=XY(2,:);
end
% Data rotation angle
function [X,Y]=rotateData(X,Y,theta)
rotateMat=[cos(theta),-sin(theta);sin(theta),cos(theta)];
XY=rotateMat*[X;Y];
X=XY(1,:);Y=XY(2,:);
end
end
Dynamically draw complete code
function xuerongronggif
ax=gca;
ax.DataAspectRatio=[1 1 1];
ax.XLim=[-5 5];
ax.YLim=[-5 5];
hold(ax,'on')
% Draw the arm
[X,Y]=getEllipse([-1,-2.5],.4,.6,-pi/5,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.7,-1.89],.4,.6,pi/3.6,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
pause(.5)
% Draw legs
rectangle('Position',[-.95,-4.2,1.3,1],'Curvature',.8,...
'FaceColor',[182,50,2]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
rectangle('Position',[-1,-3.9,1.4,1],'Curvature',.8,...
'FaceColor',[246,168,68]./255,'EdgeColor',[246,168,68]./255,'LineWidth',1.8)
rectangle('Position',[-1,-3.8,1.4,1],'Curvature',.8,...
'FaceColor',[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
rectangle('Position',[.5,-4.2,1.2,1],'Curvature',.8,...
'FaceColor',[182,50,2]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
rectangle('Position',[.45,-3.9,1.3,1],'Curvature',.8,...
'FaceColor',[246,168,68]./255,'EdgeColor',[246,168,68]./255,'LineWidth',1.8)
rectangle('Position',[.45,-3.8,1.3,1],'Curvature',.8,...
'FaceColor',[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
pause(.5)
% Draw the body
rectangle('Position',[-.9,-3.5,2.6,3],'Curvature',.6,...
'FaceColor',[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
pause(.5)
% Draw the head
[X0,Y0]=getEllipse([-.15,.65],2.9,2.3,pi/11,200);
fill(X0,Y0,[212,3,28]./255,'EdgeColor',[153,12,40]./255,'LineWidth',1.8)
pause(.5)
[X,Y]=getEllipse([-.15,.65],2.7,2.3,pi/11,200);
plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.15,.65],1.7,2.3,pi/11,200);
plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.8)
X=linspace(0,pi,100);Y=sin(X);
X=X.*1.4;Y=Y.*0.2;
[X,Y]=rotateData(X,Y,-pi/11);
plot(Y+.41,X-1.46,'Color',[236,136,74]./255,'LineWidth',2)
plot(X0,Y0,'Color',[212,3,28]./255,'LineWidth',3)
pause(.5)
% Draw clouds on your face
[X,Y]=getEllipse([-1.2,-.3],.5,.6,pi/3.4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-1.3,.4],.45,.55,-pi/3.4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.65,1],.45,.7,-pi/4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([0,1],.45,.7,-pi/4,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.8,.5],.4,.5,pi/5,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.63,.92],.4,.5,pi/12,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.3,.25],1.6,1,pi/13,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[250,250,250]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.95,1.42],.3,.3,pi/12,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
pause(.5)
% Draw powder Blusher
[X,Y]=getEllipse([-1.1,-.5],.35,.35,pi/12,200);
fill(X,Y,[212,3,28]./255,'EdgeColor','none','FaceAlpha',.2)
[X,Y]=getEllipse([-1.1,-.5],.32,.32,pi/12,200);
fill(X+3,Y+.9,[212,3,28]./255,'EdgeColor','none','FaceAlpha',.2)
pause(.5)
% Draw the eyes
[X,Y]=getEllipse([-.76,.16],.15,.24,pi/20,200);
fill(X,Y,[38,23,26]./255,'EdgeColor',[38,23,26]./255)
[X,Y]=getEllipse([1.25,.47],.15,.24,pi/20,200);
fill(X,Y,[38,23,26]./255,'EdgeColor',[38,23,26]./255)
[X,Y]=getEllipse([-.81,.21],.05,.05,pi/20,200);
fill(X,Y,[230,230,230]./255,'EdgeColor','none')
[X,Y]=getEllipse([1.2,.52],.05,.05,pi/20,200);
fill(X,Y,[230,230,230]./255,'EdgeColor','none')
pause(.5)
% Draw headdress
[X,Y]=getEllipse([-1.85,2.2],.48,.15,pi/20,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.7,2.4],.47,.2,pi/15,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.32,2.55],.47,.15,pi/15,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.2,2.6],.25,.14,pi/30,200);
fill(X,Y,[236,136,74]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.8)
%
[X,Y]=getEllipse([-1.8,2.1],.08,.2,-pi/10,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-.7,2.3],.08,.2,-pi/40,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
[X,Y]=getEllipse([.4,2.5],.08,.2,-pi/40,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.25,2.5],.04,.12,pi/10,200);
fill(X,Y,[212,3,28]./255,'EdgeColor',[212,3,28]./255,'LineWidth',1.8)
pause(.5)
% Paint golden moire
[X,Y]=getEllipse([-.3,3.6],.3,.35,pi/10-pi/5,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[246,168,68]./255,'LineWidth',2)
[X,Y]=getEllipse([-1,3.4],.3,.35,pi/10+pi/5,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[246,168,68]./255,'LineWidth',2)
[X,Y]=getEllipse([-.7,3.6],.35,.4,pi/10,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[246,168,68]./255,'LineWidth',2)
X=linspace(0+pi/10,pi-pi/10,200);
Y=sin(X);
X=X.*.4;Y=Y.*.3;
[X,Y]=rotateData(X,Y,pi/10);
plot(X-1.3,Y+3.2,'Color',[250,250,250]./255,'LineWidth',7)
pause(.5)
% Draw a small hat
[X,Y]=getEllipse([0,0],1,.9,pi/12,200);Y=Y-.3;
Y(Y<=0)=Y(Y<=0).*.2;
[X,Y]=rotateData(X,Y,pi/14);
fill(X-.4,Y+2.8,[212,3,28]./255,'EdgeColor',[182,50,2]./255,'LineWidth',1.8)
pause(.5)
% Draw the snow on your head
X1=linspace(-2*pi/3,(5+2/3)*pi,200);
Y1=sin(X1);
X2=linspace(0,pi,200);
Y2=sin(X2);
X1=X1.*.22;Y1=Y1.*.1;
[X1,Y1]=rotateData(X1,Y1,pi/20);
X1=X1-1.9;Y1=Y1+2.2;
X2=X2.*1.3;Y2=Y2.*.58;
[X2,Y2]=rotateData(X2,Y2,pi/16);
X2=X2-2.4;Y2=Y2+2.1;
fill([X1,X2(end:-1:1)],[Y1,Y2(end:-1:1)],[250,250,250]./255,...
'EdgeColor',[240,240,240]./255,'LineWidth',2.5)
pause(.5)
% Draw belly
[X,Y]=getEllipse([.6,-2.5],.8,.65,pi/12,200);
fill(X,Y,[250,250,250]./255,'EdgeColor',[230,230,230]./255,'LineWidth',1.8)
pause(.5)
% Draw a scarf
X=[-.35,-.39];
Y=[-1.8,-2.5];
plot(X,Y-.05,'Color',[246,168,68]./400,'LineWidth',9)
plot(X,Y,'Color',[246,168,68]./255,'LineWidth',8)
X=linspace(0,pi,100);Y=sin(X);
X=X.*.9;Y=-Y.*.2;
[X,Y]=rotateData(X,Y,pi/14);
plot(X.*1.05-1.05,Y-1.8,'Color',[246,168,68]./400,'LineWidth',9)
plot(X-.99,Y-1.8,'Color',[246,168,68]./255,'LineWidth',8)
pause(.5)
% Text
text(.6,-2.5,'BEIJING 2022','HorizontalAlignment','center','Color',[.2,.2,.2],...
'FontSize',4.5,'FontName','Comic Sans MS','Rotation',15,'FontWeight','bold')
pause(.5)
% sign
X=linspace(0,5*pi/6,100);Y=-sin(X);
X=X.*.13;Y=Y.*.13;
[X,Y]=rotateData(X,Y,-2*pi/3);
plot(X+.6,Y-2.7,'Color',[212,62,80]./400,'LineWidth',1.5)
[X,Y]=rotateData(X,Y,pi/4);
plot(X+.65,Y-2.75,'Color',[51,119,180]./400,'LineWidth',1.5)
[X,Y]=rotateData(X,Y,pi/4);
plot(X+.7,Y-2.8,'Color',[174,222,93]./400,'LineWidth',1.5)
pause(.5)
% =========================================================================
% Ellipse data point generating function
function [X,Y]=getEllipse(Mu,XR,YR,theta,pntNum)
% Mu | Center point
% XR,YR | Before the rotation X,Y Half shaft length
% theta | Rotation Angle
% pntNum | Number of generated data points
tList=linspace(0,2*pi,pntNum);
X=cos(tList).*XR;
Y=sin(tList).*YR;
rotateMat=[cos(theta),-sin(theta);sin(theta),cos(theta)];
XY=rotateMat*[X;Y]+Mu(:);
X=XY(1,:);Y=XY(2,:);
end
% Data rotation angle
function [X,Y]=rotateData(X,Y,theta)
rotateMat=[cos(theta),-sin(theta);sin(theta),cos(theta)];
XY=rotateMat*[X;Y];
X=XY(1,:);Y=XY(2,:);
end
end
边栏推荐
- How to add new fields to mongodb with code (all)
- A trip to Suzhou during the Dragon Boat Festival holiday
- Installation of VMware Workstation
- datagrid直接编辑保存“设计缺陷”
- Codeforces 12D Ball 树形阵列模拟3排序元素
- "Chris Richardson microservices series" uses API gateway to build microservices
- The Blue Bridge Cup web application development simulation competition is open for the first time! Contestants fast forward!
- An exception occurred in Huawei game multimedia calling the room switching method internal system error Reason:90000017
- database mirroring
- [Yugong series] go teaching course 003-ide installation and basic use in July 2022
猜你喜欢

MMAP learning

AD637使用筆記

AD637使用笔记

Shell script, awk uses if, for process control

科技云报道:算力网络,还需跨越几道坎?

A substring with a length of three and different characters in the leetcode simple question

Official clarification statement of Jihu company

Oracle checkpoint queue - Analysis of the principle of instance crash recovery

database mirroring

How to use tensorflow2 for cat and dog classification and recognition
随机推荐
How to organize an actual attack and defense drill
Codeforces 12D Ball 树形阵列模拟3排序元素
boundary IoU 的计算方式
SecureCRT使用提示
Reptile practice
matlab绘制hsv色轮图
database mirroring
Oracle triggers
Implementation technology of recovery
Blocking of concurrency control
[Yugong series] go teaching course 003-ide installation and basic use in July 2022
Codeforces 12D ball tree array simulation 3 sorting elements
Two stage locking protocol for concurrency control
华为联机对战如何提升玩家匹配成功几率
"Chris Richardson microservices series" uses API gateway to build microservices
The American Championship is about to start. Are you ready?
Installation of VMware Workstation
Evolution of large website architecture and knowledge system
Leetcode simple question: check whether each row and column contain all integers
Recovery technology with checkpoints