Plot cylinder symmetry axis

1 view (last 30 days)
I am using the function cylinder to generate a cylinder model. I would like to show the cylinder axis in my plot.
There is a function to rapidly plot the axis or i have to necessary build it and than plot ?
  1 Comment
Raj Gopal Mishra
Raj Gopal Mishra on 26 Jul 2020
We can Also plot it with simple Circle patch repeating it for number of times till we get height.
theta=linspace(0,pi,100);
r=1.5; % radius
h=10; %height
x=r*cos(theta);
y=r*sin(theta);
z=zeros(size(x));
while z(1,1)<h,
patch([x -x], [y -y], [z z], 'r')
hold on
z=z+0.1;
end
hold off
view(3)

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 8 Jan 2019
I am not certain what you intend by ‘axis’.
If you just want a line through the axis of the cylinder, try this:
[X,Y,Z] = cylinder;
figure
surf(X, Y, Z)
hold on
plot3([0 0], [0 0], [-1 2], ':r', 'LineWidth',2)
hold off
grid on
Experiment to get the result you want.
  2 Comments
gaetano mallardo
gaetano mallardo on 9 Jan 2019
Thank you for your answer, it was exactly what i was looking for, even if i realised there are more cylinder function. Anyway starting from your code i arrived to a solution.
What i was using it's:
model = cylinderModel(params)
Basing on your code i developed the same solution for my model class and i post it here in case it can help someone in future:
figure()
hold on
plot(model)
hold on
cilindro = model; % just name change
plot3([cilindro.Parameters(1,1) cilindro.Parameters(1,4)], ....
[cilindro.Parameters(1,2) cilindro.Parameters(1,5)], ...
[cilindro.Parameters(1,3) cilindro.Parameters(1,6)],...
':r', 'LineWidth',2)
Star Strider
Star Strider on 9 Jan 2019
As always, my pleasure.
For reference, the cylinderModel class (link) is part of the Computer Vision System Toolbox (link) that I do not have.
I added that and MATLAB to the ‘Products’ tags.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!