Graphing in Cylindrical Coordinates using MATLAB

Hello,
I want to reproduce this graph... http://i45.tinypic.com/121xra1.jpg ... using MATLAB.
It's the graph of g(r, theta) = 1 + r^2*sin(theta) over the unit circle.
Does anyone have any advice?
Thanks :)

 Respuesta aceptada

Geoff
Geoff el 30 de Abr. de 2012
Advice is to make a start and show us what you have done so far.
Here is my primer:
r = 0:0.1:1;
theta = linspace(0, 2*pi, 12);
You need to use meshgrid
doc meshgrid
And surf
doc surf
And a polar co-ordinate conversion
<insert high-school trigonometry>
The colour map is jet.
I think that's plenty to get you started =)

6 comentarios

Mark
Mark el 3 de Mayo de 2012
Thanks for your response Geoff.
How does this look...?
r=0:0.1:1;
theta=linspace(0, 2*pi, 12);
[r,theta]=meshgrid(r,theta);
x=r.*cos(theta);
y=r.*sin(theta);
z=1+r.^2.*sin(theta);
mesh(x,y,z)
grid on
box on
axis tight
view([130,30])
xlabel('x = r cos(theta)')
ylabel('y = r sin(theta)')
zlabel('g(r,theta)')
title('Questions 6(b)')
Cheers
Geoff
Geoff el 3 de Mayo de 2012
Well, I presume that you are supposed to generate something that looks EXACTLY like the example?
In that case you have some work to do yet.
Use '\theta' to get the right symbol.
You need to set your axis ticks up correctly, and make the guides the right colour.
I notice I was wrong about the 12 divisions (because it wraps around to zero again). You need 13 divisions.
You also need to set up the camera in the correct place.
The title is "Question" not "Questions".
Attention to detail!!
Geoff
Geoff el 3 de Mayo de 2012
Oh, and I don't think the example picture uses 'box on', do you?
Geoff
Geoff el 3 de Mayo de 2012
And one last hint on camera placement. Look at the line on the mesh that appears to be vertical. You want your camera rotated to that point, and you need to experiment with the tilt to get the right elevation. Standard isometric view used by engineers. It'll be an obvious angle.
Mark
Mark el 3 de Mayo de 2012
Thanks again for your comments.
I've got it to this:
r=0:0.1:1;
theta=linspace(0, 2*pi, 13);
[r,theta]=meshgrid(r,theta);
x=r.*cos(theta);
y=r.*sin(theta);
z=1+r.^2.*sin(theta);
mesh(x,y,z)
grid on
axis tight
view([300,30])
xlabel('x = r cos(\theta)')
ylabel('y = r sin(\theta)')
zlabel('g(r,\theta)')
title('Question 6(b)')
the only thing I can see that needs changing the the scaling on the axes
Geoff
Geoff el 3 de Mayo de 2012
Really?
I can see:
- Axis tick labels (and number of grid guides) not consistent with example;
- Colour of grid guides not consistent with example;
- Aspect ratio of default figure not consistent with example;
- Anti-aliasing of mesh lines not consistent with example;
- Background colour of figure not consistent with example.
I pointed out some of these things before. Aren't you lucky to stumble across a fussy old bugger like myself to make your life difficult =)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Polar Plots en Centro de ayuda y File Exchange.

Preguntada:

el 29 de Abr. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by