Plot cylinder symmetry axis

1 次查看(过去 30 天)
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 个评论
Raj Gopal Mishra
Raj Gopal Mishra 2020-7-26
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)

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2019-1-8
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 个评论
gaetano mallardo
gaetano mallardo 2019-1-9
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 2019-1-9
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by