当前位置:网站首页>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
边栏推荐
- Granularity of blocking of concurrency control
- 科技云报道:算力网络,还需跨越几道坎?
- How to view Apache log4j 2 remote code execution vulnerability?
- 华为联机对战如何提升玩家匹配成功几率
- Web3为互联网带来了哪些改变?
- Countdown to 92 days, the strategy for the provincial preparation of the Blue Bridge Cup is coming~
- How to organize an actual attack and defense drill
- Bitbucket installation configuration
- Poj3414 extensive search
- 微服务入门(RestTemplate、Eureka、Nacos、Feign、Gateway)
猜你喜欢

Oracle advanced query

Reptile practice

华为联机对战如何提升玩家匹配成功几率

Huawei fast game failed to call the login interface, and returned error code -1

Interview questions for famous enterprises: Coins represent a given value

Overview of concurrency control

Getting started with microservices (resttemplate, Eureka, Nacos, feign, gateway)

Database tuning solution

Database recovery strategy

Storage optimization of performance tuning methodology
随机推荐
Tips for using SecureCRT
The statistics of leetcode simple question is the public string that has appeared once
Multiplexing of Oracle control files
How to organize an actual attack and defense drill
Index optimization of performance tuning methodology
Common interview questions of JVM manufacturers
CRM creates its own custom report based on fetch
Summary of concurrency control
The Blue Bridge Cup web application development simulation competition is open for the first time! Contestants fast forward!
Create a virtual machine on VMware (system not installed)
HDU 4391 Paint The Wall 段树(水
Image editor for their AutoLayout environment
datagrid直接编辑保存“设计缺陷”
Microservice link risk analysis
poj 3237 Tree(树链拆分)
matlab绘制hsv色轮图
Leetcode simple question: the minimum cost of buying candy at a discount
Yolov5 training custom data set (pycharm ultra detailed version)
Bitbucket installation configuration
多家呼吸机巨头产品近期被一级召回 呼吸机市场仍在增量竞争