How can I custom cylinder rotate axis?

8 views (last 30 days)
ali alizadeh
ali alizadeh on 3 Sep 2021
Edited: Tuan on 23 Mar 2023
Hi
I have a 2D graph and I want make it 3D via cylinder. but cylender rotating it about x-axis.
is there anyway to change this? for example rotate about y-axis
  1 Comment
Matt J
Matt J on 3 Sep 2021
but cylender rotating it about x-axis.
I assume you mean the z-axis.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 3 Sep 2021
Edited: Matt J on 4 Sep 2021
Another approach:
[Xq,Zq]=ndgrid(linspace(-3,3,100));
[~,Rq]=cart2pol(Xq,Zq);
func=@(r) sin(r)./r; %The 1D profile
x=linspace(0,3,100);
y=func(4*x);
Yq=interp1(x,y,Rq); %rotated about Y-axis
surf(Xq,Yq,Zq,'EdgeColor','none')
xlabel 'X', ylabel 'Y', zlabel 'Z'
  4 Comments
ali alizadeh
ali alizadeh on 4 Sep 2021
Edited: Matt J on 4 Sep 2021
sorry mr Matt J
I attach my data. may you plot it?
Please plot this datas, with rotating graph about y-axis.
data=load('5.csv');
x=data(:,2);
y=data(:,1); y=y/max(y);
a=3*max(abs(x));
[Xq,Zq]=ndgrid(linspace(-a,a,2000));
[~,Rq]=cart2pol(Xq,Zq);
Yq=interp1(x,y,Rq); %rotated about Y-axis
surf(Xq,Yq,Zq,'EdgeColor','none','FaceAlpha',0.6)
xlabel 'X', ylabel 'Y', zlabel 'Z'
Matt J
Matt J on 4 Sep 2021
I 've added the necessary code to your last comment and run it.

Sign in to comment.

More Answers (1)

Matt J
Matt J on 3 Sep 2021
Edited: Matt J on 3 Sep 2021
For example,
[X,Z,Y] = cylinder(2+cos(0:pi/10:2*pi));
surf(X,Y,Z)
xlabel 'X', ylabel 'Y', zlabel 'Z'
  4 Comments
ali alizadeh
ali alizadeh on 4 Sep 2021
Many Thanks. it's nicly works.
Tuan
Tuan on 23 Mar 2023
Edited: Tuan on 23 Mar 2023
Hi, I have just the same question, but this time around y-axis, to create a cup with 2 parabol, can you help me with the code cause im stuck with all the tutorial online

Sign in to comment.

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!