clc
clear
close all
aplha1=0:pi/25:2*pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1)).*cos(aplha1);
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/25:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,-z);%axis off
axis off
alpha(h1, 0.8);
如上图所示,这段代码画的一个陀螺或鸡蛋形状
我们只需要改变某一行即可实现不同图形的转换
clc
clear
close all
aplha1=0:pi/25:2*pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1))-0.5;
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/25:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,-z);%axis off
axis off
alpha(h1, 0.8);
这便成了一个锥形
clc
clear
close all
aplha1=0:pi/25:2*pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1))-1;
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/25:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,-z);%axis off
axis off
alpha(h1, 0.8);
双向圆锥
clc
clear
close all
aplha1=0:pi/25:2*pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1))+0.005;
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/25:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,-z);%axis off
axis off
alpha(h1, 0.8);
伪圆柱
把输出x进行一个倒数处理,可实现上下翻转
clc
clear
close all
aplha1=0:pi/25:2*pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1))+0.005;
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/25:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,z);%axis off
axis off
alpha(h1, 0.8);
得到相应的翻转图形
clc
clear
close all
aplha1=0:pi/2:pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1))-0.5;
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/2:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,-z);%axis off
%plot3(x,y,-z);
axis off
alpha(h1, 0.8);
clc %%二维绕Y轴转动 竖直的水滴
clear
close all
aplha1=0:pi/20:2*pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1))-0.5;
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/20:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,-z);%axis off
%plot3(x, y, -z);
axis auto
alpha(h1, 0.8);
hold on;
plot3([x(15,11), x(15,11)], [y(15,11), -y(15,11)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(14,11), x(14,11)], [y(14,11), -y(14,11)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(13,11), x(13,11)], [y(13,11), -y(13,11)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(12,11), x(12,11)], [y(11,12), -y(11,12)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(11,11), x(11,11)], [y(11,11), -y(11,11)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(10,11), x(10,11)], [y(11,10), -y(11,10)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(9,11), x(9,11)], [y(9,11), -y(9,11)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(8,11), x(8,11)], [y(8,11), -y(8,11)],[-z(11,11), -z(11,11)], 'red');
hold on;
plot3([x(7,11), x(7,11)], [y(7,11), -y(7,11)],[-z(11,11), -z(11,11)], 'red');
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
clc %%二维绕Y轴转动 竖直的水滴
clear
close all
aplha1=0:pi/2:2*pi; %% 二维曲线的代码---根据自己需要修改
N=length(aplha1); %%不属于二维曲线的代码
x0=0.5.*(2 + sin(aplha1))-1;
z0=-1 - sin(aplha1); %% 二维曲线的代码---根据自己需要修改
y0=zeros(1,length(x0));
aplha2=0:pi/2:2*pi;
M=length(aplha2);
x= zeros(M,N);
y= zeros(M,N);
z= zeros(M,N);
for i=1:N
for j=1:M
x(j,i)=cos(aplha2(1,j))*x0(1,i);
y(j,i)=sin(aplha2(1,j))*x0(1,i);
z(j,i)=z0(1,i);
end
end
h1=mesh(x,y,-z);%axis off
axis off
alpha(h1, 0.8);
xlabel(' {\it x}- axis'); ylabel(' {\it{y}}- axis'); zlabel(' U(x,y)/J ');
%以下横方向
ploo([0.45,0.05,2],[-0.05,-0.45,2]);
ploo([0.40,0.10,2],[-0.10,-0.40,2]);
ploo([0.35,0.15,2],[-0.15,-0.35,2]);
ploo([0.30,0.20,2],[-0.20,-0.30,2]);
ploo([0.25,0.25,2],[-0.25,-0.25,2]);
ploo([0.2,0.30,2],[-0.3,-0.20,2]);
ploo([0.15,0.35,2],[-0.35,-0.15,2]);
ploo([0.10,0.40,2],[-0.40,-0.10,2]);
ploo([0.05,0.45,2],[-0.45,-0.05,2]);
%以下竖方向
ploo([-0.45,0.05,2],[0.05,-0.45,2]);
ploo([-0.40,0.10,2],[0.10,-0.40,2]);
ploo([-0.35,0.15,2],[0.15,-0.35,2]);
ploo([-0.30,0.20,2],[0.20,-0.30,2]);
ploo([-0.25,0.25,2],[0.25,-0.25,2]);
ploo([-0.2,0.30,2],[0.3,-0.20,2]);
ploo([-0.15,0.35,2],[0.35,-0.15,2]);
ploo([-0.10,0.40,2],[0.40,-0.10,2]);
ploo([-0.05,0.45,2],[0.45,-0.05,2]);
%以下连接原点
ploo([0.45,0.05,2],[0,0,1]);
ploo([0.40,0.10,2],[0,0,1]);
ploo([0.35,0.15,2],[0,0,1]);
ploo([0.30,0.20,2],[0,0,1]);
ploo([0.25,0.25,2],[0,0,1]);
ploo([0.2,0.30,2],[0,0,1]);
ploo([0.15,0.35,2],[0,0,1]);
ploo([0.10,0.40,2],[0,0,1]);
ploo([0.05,0.45,2],[0,0,1]);
ploo([0,0,1],[-0.05,-0.45,2]);
ploo([0,0,1],[-0.10,-0.40,2]);
ploo([0,0,1],[-0.15,-0.35,2]);
ploo([0,0,1],[-0.20,-0.30,2]);
ploo([0,0,1],[-0.25,-0.25,2]);
ploo([0,0,1],[-0.3,-0.20,2]);
ploo([0,0,1],[-0.35,-0.15,2]);
ploo([0,0,1],[-0.40,-0.10,2]);
ploo([0,0,1],[-0.45,-0.05,2]);
ploo([-0.45,0.05,2],[0,0,1]);
ploo([-0.40,0.10,2],[0,0,1]);
ploo([-0.35,0.15,2],[0,0,1]);
ploo([-0.30,0.20,2],[0,0,1]);
ploo([-0.25,0.25,2],[0,0,1]);
ploo([-0.2,0.30,2],[0,0,1]);
ploo([-0.15,0.35,2],[0,0,1]);
ploo([-0.10,0.40,2],[0,0,1]);
ploo([-0.05,0.45,2],[0,0,1]);
ploo([0,0,1],[0.05,-0.45,2]);
ploo([0,0,1],[0.10,-0.40,2]);
ploo([0,0,1],[0.15,-0.35,2]);
ploo([0,0,1],[0.20,-0.30,2]);
ploo([0,0,1],[0.25,-0.25,2]);
ploo([0,0,1],[0.3,-0.20,2]);
ploo([0,0,1],[0.35,-0.15,2]);
ploo([0,0,1],[0.40,-0.10,2]);
ploo([0,0,1],[0.45,-0.05,2]);
zlim([1, 2]);
grid on;
%ploo(point2,point3);
%ploo(point3,point4);
%ploo(point4,point1);
function oo=ploo(DD,DDD)
hold on;
plot3([DD(1), DDD(1)], [DD(2), DDD(2)], [DD(3), DDD(3)], 'black');
oo=0;
end