
[x,y,z]=sphere(20);
figure
for i=1:10
X=m(i,1)+10x;
Y=m(i,2)+10y;
Z=m(i,3)+10z;
surf(X,Y,Z)
hold on
end
参考代码:
(a)同心圆:
R = 25; % 球半径C = 10; % 同心圆数
N = 40; % 每个圆上点数
h = linspace(0, 2R, C+2)';
t = linspace(0, 2pi, N);
r = sqrt( R^2 - (h-R)^2 );
x = R + r cos(t);
y = R + r sin(t);
h = repmat(h, 1, N);
plot3(x',y',h','k-')
axis equal
grid on
(b)螺旋线:
R = 25; % 球半径C = 10; % 螺旋圈数
N = 200; % 点数
h = linspace(0,2R, N);
t = h / (2R) C pi;
r = sqrt( R^2 - (h-R)^2 );
x = R + r cos(t);
y = R + r sin(t);
plot3(x,y,h,'-')
axis equal
grid on[xx,yy,zz] = sphere;
产生一个半径为1,圆心在[0,0,0]的球,直接surf(xx,yy,zz)即可;
要画半径为r,圆心在[x,y,z]的球,直接surf(xxr+x,yyr+y,zzr+z)
不知您问的是否是这个意思
代码如下:
clear
[x1,y1,z1] = ellipsoid(0,0,0,1,1,1);
[x2,y2,z2] = meshgrid(-1:001:1,-1:001:1,05);
[x3,y3,z3] = meshgrid(-1:001:1,-1:001:1,-05);
figure(1)
hold on
view(-375,15);
surf(x1,y1,z1);
surf(x2,y2,z2);
surf(x3,y3,z3);
axis equal
grid on
sphere函数加mesh或surf
改变圆心的坐标即可
clc
[x y z]=sphere(50);
mesh(3x,3y,3z+9);
hold on
mesh(3x+5,3y+5,3z+14);
mesh(3x+10,3y+10,3z+19);
axis equal
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)