How to shift a fsurf plot?

1 回表示 (過去 30 日間)
Stephan
Stephan 2018 年 5 月 22 日
コメント済み: Stephan 2018 年 5 月 22 日
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!

採用された回答

KSSV
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)
  1 件のコメント
Stephan
Stephan 2018 年 5 月 22 日
Thank you very much!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by