编辑
在 S2 中的单位球体 (x,y,z) 上定义了一个函数 f(x,y,z)。我必须将它绘制在单位球体上,而不仅仅是按颜色。
我试过 surf(x,y,z,f) 但它只是根据 f 的值对球体着色。但我需要将单位球体转换为“蛋”。也就是说,如果在某个点函数 f=2 的值,例如 - 我必须在单位法线方向上将球体拉伸到 z 的原始值的两倍。对于 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