求matlab高手,做成下面的效果图,三个球相交,从证明看是三个圆刚好交于一点,最好能给源码

2020-05-08 教育 67阅读

代码如下:

————————————————————

x0=[0,1/2,1];

y0=[0,sqrt(3)/2,0];

z0=[0,0,0];

r=sqrt(3)/3;

rho=0:0.05*pi:2*pi;

phi=-pi:0.05*pi:pi;


%%%%%%%%%以下语句用来画3个球体。

for i=1:3

  x=x0(i)+r*(cos(phi))'*(cos(rho));

  y=y0(i)+r*(cos(phi))'*(sin(rho));

  z=z0(i)+r*(sin(phi))'*(ones(size(rho)));

  surf (x,y,z);

  shading interp 

  hold on

end


%%%%%%%%以下语句用来画外围的圆圈。

for i=1:3

  x=x0(i)+r*(cos(rho));

  y=y0(i)+r*(sin(rho));

  z=r*ones(size(rho));

  plot3(x,y,z,'linewidth',1);

  shading interp 

  hold on

end 


%%%%%%%%%%以下语句用来画中间的三角形。

x01=[0,1/2,1,0];

y01=[0,sqrt(3)/2,0,0];

z01=sqrt(3)/3*ones(1,4);

for i=1:3

  line(x01,y01,z01,'linewidth',1.5);

  hold on

end


%%%%%%%%%%%

axis equal

axis off

——————————————————————————

效果图(matlab中可以调整3维图形视角,获得需要的效果)

(1)这是整个语句的效果

(2)这是从正上方看的效果

(3)这是去掉圆圈和三角形的效果

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com