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 :)

 Accepted Answer

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 Comments

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
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!!
Oh, and I don't think the example picture uses 'box on', do you?
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.
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
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 =)

Sign in to comment.

More Answers (0)

Categories

Asked:

on 29 Apr 2012

Community Treasure Hunt

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

Start Hunting!