这b站文章里面不能像知乎加代码?那我就放这里吧
这是画大象的 matlab 代码
%%%%%%%%%%%%%%%%%
clear all;clc
num=101;
k=1:5;
t=linspace(0,2*pi,num);
Ax=[0,0,12,0,-14];
Bx=[50,18,0,0,0];
Ay=[-60,0,0,0,0];
By=[-30,8,-10,0,0];
eye=20;
x=Ax*cos(k'*t)+Bx*sin(k'*t);
y=Ay*cos(k'*t)+By*sin(k'*t);
plot(y,-x,eye,eye,'O','MarkerFaceColor','r')
%%%%%%%%%%%%%%%%%%%%%
这是动鼻子的 matlab 代码
%%%%%%%%%%%%%%%%%%%%%
clear all;clc
%参数变量
num=101;
k=1:5;
t=linspace(0,2*pi,num);
%大象参数
Ax=[-60,0,0,0,0];
Bx=[-30,8,-10,0,0];
Ay=[0,0,-12,0,14];
By=[-50,-18,0,0,0];
%眼睛和鼻子参数
eye=20;
wigg=40;
%参数方程得到轮廓
x=Ax*cos(k'*t)+Bx*sin(k'*t);
y=Ay*cos(k'*t)+By*sin(k'*t);
%找到摇鼻子位置
A=20;
nose=find(x>wigg);
nose_m=find(x>=max(x));
%制作动画
move_num=100;
v=VideoWriter('elephant.avi','Motion JPEG AVI');
v.Quality=95;
v.FrameRate=10;
open(v)
for i=0:move_num
y0=zeros(1,num);
y0(nose)=A*sin(2*pi*i/move_num)*exp(-(nose-nose_m).^2/40);
plot(x,y+y0,eye,eye,'O','MarkerFaceColor','r')
frame=getframe(gcf);
writeVideo(v,frame)
end
close(v)
%%%%%%%%%%%%%%%%%%%%%