Rolve function around axis to create 3D surface.

37 views (last 30 days)
Mateo Landazuri Pachano on 30 Jun 2020
Commented: Star Strider on 1 Jul 2020
Hello,
I am fairly new to matlab and know the basics. I am trying to create a 3D surface from the function y by revolving it around the x axis. The function is the profile of the tip of a bullet and I am looking to obtain a 3D plot. Thank you in advance!
x = linspace(0,1,100);
y = (2).*(x./12).^0.5;

Star Strider on 30 Jun 2020

Show 1 older comment
Star Strider on 1 Jul 2020
I managed to get it to work.
The Code —
a = linspace(0, 2*pi, numel(r));
r = linspace(0,1,100);
[A,R] = ndgrid(a,r);
Z = (2*sqrt((R)/12)); % Calculate Curve
[X,Y,Z] = pol2cart(A,Z,R); % Set ‘Z’ As The Radius Matrix, ‘R’ Matrix As ‘Z’
figure
mesh(Z, Y, X, 'FaceAlpha',0.75)
grid on
axis('equal') % Avoid Scaling Distortion
hold on
plot3(xlim+[-0.1 0.1], [0 0], [0 0], 'k', 'LineWidth',2) % Centre Axis (If Needed)
hold off
The Plot —
I added a centre axis line just for fun, and set 'FaceAlpha' at less than 1 to make it visible. You can eliminate it by simply eliminating everything after the axis call.
Experiment to get different results.
This was a bit of a challenge!
Mateo Landazuri Pachano on 1 Jul 2020
hey thank you so much for taking the time to help me out, it works perfectly!
Star Strider on 1 Jul 2020
As always, my pleasure!

Gurpreet Singh on 30 Jun 2020
Hi Mateo,
It is my understanding that you are trying to create a 3D surface using a 2D plot by revolving it around the x axis.