-2

我一直在尝试使用下面的例程绘制球面,但每次尝试运行此代码时都会收到此错误消息“使用 surf 错误(第 75 行)X、Y、Z 和 C 不能很复杂”。我需要你的意见来解决这个问题。谢谢

draw_sph 错误(第 38 行) surf(x,z,y,'facecolor','interp',...

     D=[50,0,0];
     c=1/10;
     k=1;
     Vertex=[0 0 0];


      M=5;
      n=2^(M-1);

      phi =(linspace(0,2*pi,n));
      r=(linspace(0,D(1),n))';

      x = r*cos(phi)+Vertex(1);
      y = r*sin(phi)+Vertex(2);
      z = (c*((r*cos(phi)).^2+(r*sin(phi)).^2))./
           (1+sqrt(1-(1+k)*c^2*((r*cos(phi)).^2+(r*sin(phi)).^2)))+Vertex(3);



     surf(x,z,y,'facecolor','interp',...
     'edgecolor','none',...
     'facelighting','phong'); 


     axis equal
     axis tight
     %camlight left
     alpha(.33)



     draw=1;
4

1 回答 1

0
sqrt(1-(1+k)*c^2*((r*cos(phi)).^2+(r*sin(phi)).^2)) 

可以产生一些复杂的价值。

方程实际上是

sqrt(1-(1+k)*c^2*(r^2)) 

如果你考虑到 sin^2 + cos^2 是 1. 并且 r 可能会相当高......

于 2013-09-02T14:24:00.143 回答