How to shift a fsurf plot?
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I would like to shift the plot produced by
openExample('graphics/ParameterizedSurfacePlotExample')
with respect to the x,y-axis. My ansatz is
r = @(u,v) 2 + sin(7.*u + 5.*v);
funx = @(u,v) r(u,v).*cos(u).*sin(v);
funy = @(u,v) r(u,v).*sin(u).*sin(v);
funz = @(u,v) r(u,v).*cos(v);
% fsurf(funx,funy,funz,[0 2*pi 0 pi]); % This plot should be shifted
xshift = 2; yshift = -2;
fsurf( @(u,v)funx(u-xshift,v-yshift), @(u,v)funy(u-xshift,v-yshift), @(u,v)funz(u-xshift,v-yshift), [0 2*pi 0 pi])
However, this does not work.
Thanks for any help!
0 个评论
采纳的回答
KSSV
2018-5-22
r = @(u,v) 2 + sin(7.*u + 5.*v);
funx = @(u,v) r(u,v).*cos(u).*sin(v);
funy = @(u,v) r(u,v).*sin(u).*sin(v);
funz = @(u,v) r(u,v).*cos(v);
% fsurf(funx,funy,funz,[0 2*pi 0 pi]); % This plot should be shifted
xshift = 2; yshift = -2;
% fsurf( @(u,v)funx(u-xshift,v-yshift), @(u,v)funy(u-xshift,v-yshift), @(u,v)funz(u-xshift,v-yshift), [0 2*pi 0 pi])
M = 100 ; N =100 ;
u = linspace(0,2*pi,M) ;
v = linspace(0,pi,N) ;
[U,V] = meshgrid(u,v) ;
X = funx(U,V)-2 ;
Y = funy(U,V)+2 ;
Z = funz(U,V) ;
surf(X,Y,Z)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Lighting, Transparency, and Shading 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!