Matlab画长方体、正方体、圆、球体、棱柱体等各种规则、不规则形体

%画由长方体组成的各种不规则形体
clear;clc%画一个小正方体
x=10;y=10;z=10;%角点
l=10;w=10;h=10;%长,宽,高
[a,b,c]=meshgrid([0 1]);
p=alphaShape(l*a(:)-(l-x),w*b(:)-(w-y),h*c(:)-(0-z));
plot(p,'edgecolor','none')
xlabel('x');ylabel('y');zlabel('z');
camlight
grid on;%画长棱柱1
for x = 5:2:95for y = 5:2:95if x+y==60z = 30l=5;w=5;h=5hold on;[a,b,c]=meshgrid([0 1]);p=alphaShape(l*a(:)-(l-x),w*b(:)-(w-y),h*c(:)-(0-z));plot(p,'edgecolor','none')xlabel('x');ylabel('y');zlabel('z');endend
end%画长棱柱2
for x = 5:1:95for y = 5:1:95if x-+y==60z = 20l=10;w=10;h=10hold on;[a,b,c]=meshgrid([0 1]);p=alphaShape(l*a(:)-(l-x),w*b(:)-(w-y),h*c(:)-(0-z));plot(p,'edgecolor','none')xlabel('x');ylabel('y');zlabel('z');endend
end%画球
hold on;
[m,n,k]=sphere(20)
for i =1:1:20for j = 1:1:20x=m(i,j)*20+70y=n(i,j)*20+70z=k(i,j)*20+70l=8;w=8;h=8hold on;[a,b,c]=meshgrid([0 1]);p=alphaShape(l*a(:)-(l-x),w*b(:)-(w-y),h*c(:)-(0-z));plot(p,'edgecolor','none')xlabel('x');ylabel('y');zlabel('z');end
end%画随机图形
for x = 5:10:50for y = 50:10:95z = 40l = rand(1,1)*5w = rand(1,1)*5h = rand(1,1)*5 %长宽高随机hold on;[a,b,c]=meshgrid([0 1]);p=alphaShape(l*a(:)-(l-x),w*b(:)-(w-y),h*c(:)-(0-z));plot(p,'edgecolor','none')xlabel('x');ylabel('y');zlabel('z');end
end%画圆
[m,n,k]=sphere(20)
for i =1:1:20for j = 1:1:20if (k(i,j)*20+40<42) &&(k(i,j)*20+40>38)x=m(i,j)*20+30y=n(i,j)*20+60z=k(i,j)*20+40l=6;w=6;h=3hold on;[a,b,c]=meshgrid([0 1]);p=alphaShape(l*a(:)-(l-x),w*b(:)-(w-y),h*c(:)-(0-z));plot(p,'edgecolor','none')xlabel('x');ylabel('y');zlabel('z');endend
end
axis([0,100,0,100,0,100]);

 结果:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部