-2

編集

関数 f(x,y,z) は、S2 の単位球面 (x,y,z) 上で定義されます。色だけでなく、単位球にプロットする必要があります。

私は surf(x,y,z,f) を試しましたが、f の値に関して球に色を付けるだけです。しかし、単位球を「卵」に変換する必要があります。つまり、ある時点で関数の値が f=2 の場合、たとえば、この時点で、元の z の値の 2 倍の単位法線方向に球を引き伸ばす必要があります。f のすべての点と値についても同じです。

for i=1:N
     for ii=1:N1+1
         [x(i,ii) y(i,ii) z(i,ii)]=sph2cart(phi(ii),acos(cosTeta(i))+pi/2,RO);

         Y_exact(i,ii)=FrankeF(x(i,ii), y(i,ii), z(i,ii));
         cap_point=-0.5*x(i,ii)-0.5*y(i,ii)+1/sqrt(2)*z(i,ii);

         if cap_point>=cos(0.5)
             f_cap(i,ii)=2*cos(pi*acos(cap_point));
         end

     end
end

Y_exact=Y_exact+f_cap;

surf(x,y,z,Y_exact,'FaceColor','interp','EdgeColor','none','FaceLighting','phong');
shading interp
axis square
colorbar
4

2 に答える 2

1
 for i=1:N
     for ii=1:N1+1       
[x1(i,ii) y1(i,ii) z1(i,ii)]=sph2cart(phi(ii),acos(cosTeta(i))+pi/2,RO+Y_exact(i,ii));
     end
  end

 figure(1);
 surf(x1,y1,z1,Y_exact,'FaceColor','interp','EdgeColor','none','FaceLighting','phong');
 shading interp
 axis normal
 colorbar 

これが私が欲しかったものです。 ここに画像の説明を入力

于 2013-11-05T08:13:50.710 に答える