Hello,
I have a 2D function as shown in the curve below
, which I would like to revolve around x-axis using cylinder.
[X,Y,Z]=cylinder(y);
figure;surf(X,Y,Z);
xlabel('x');ylabel('y');zlabel('z');
So for the generated solid, x range should be 24-122 and both y and z axis range should be 0-~40. But I an getting something like the below solid.
I don't get why both x and y- axis ranges are the same and why z is varying from 0-1. What am I doing wrong? Ideally I should get an oval shaped solid and no sharp peak.
Thank you for the help.

 채택된 답변

Star Strider
Star Strider 2016년 12월 20일

0 개 추천

That’s the default behaviour of the cylinder function. Use the rotate function to tip your customised cylinder on its side, and oriented in the direction you want.

댓글 수: 5

sumana
sumana 2016년 12월 20일
Hello,
I don't get it. The rotate function (https://www.mathworks.com/help/matlab/ref/rotate.html) is simply rotating a surface. How is it related to generation of solid of revolution ? Could you please provide an example ? I need to create a solid of revolution with that function around x-axis.
Thank you
Experiment with the rotate function and you will get it. The documentation illustrates using it on a specific function in order to illustrate the concept. It works on cylinder objects as well, since they’re all surf plots.
Here’s an example of tilting a cylinder on its side:
[X,Y,Z] = cylinder(50);
figure(1)
cyl = surf(X,Y,Z*100);
rotate(cyl, [0 1 0], 90)
axis equal
sumana
sumana 2016년 12월 20일
Thanks, but the solid that I obtained is incorrect, I can rotate any solid using rotate(), but I am not getting the correct solid of revolution. There is something wrong with the generated solid, it should not have sharp ends. How do I get the correct solid of revolution whose both ends are flat not sharp ?
sumana
sumana 2016년 12월 20일
Ok, I think I got it. It is drawing the cylinder using just the y values taking them as a radius, it is not considering the x values while drawing the cylinder. ok thanks
Star Strider
Star Strider 2016년 12월 20일
My pleasure.
The axis aspect ratio controls how the plot looks. See the documentation for the axis function for details. Setting them to square or equal will change the appearance of the plot.
You can rotate the cylinder using any combination of the axes in the vector and at any angle.
If my Answer helped solve your problem, please Accept it.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

질문:

2016년 12월 20일

댓글:

2016년 12월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by