フィルターのクリア

Plotting curves with increasing radius

8 ビュー (過去 30 日間)
James
James 2013 年 8 月 21 日
Dear all,
I wanted to know if there is any way to plot a curve with increasing radius. This curve has to go around a circle.
Thanks for your help.
  8 件のコメント
Image Analyst
Image Analyst 2013 年 8 月 21 日
Bring up your diagram somehow on the computer, be it in Photoshop or whatever. Type alt-Printscreen to capture the current window into the clipboard. Go to http://snag.gy and type control-V to paste it in. Note the URL it gives you and come back here and tell us what it is.
James
James 2013 年 8 月 21 日
@ Image Analyst: Thank you telling me how to do that. Below is the URL for the image. Hope it helps. The figure is of 3 different curves. The center is a circle, the other two I have the data for them but I am not sure not to plot them.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2013 年 8 月 21 日
Your sample diagram look like spirals to me, other than that the radius might not be increasing linearly.
Use pol2cart() to switch between an (r, theta) form vs (x,y) coordinates.
  3 件のコメント
Kelly Kearney
Kelly Kearney 2013 年 8 月 21 日
I see a circle and two spirals. Is this what you're looking for?
theta = linspace(pi/2+2*pi, pi/2, 100);
r = cell(3,1);
r{1} = ones(size(theta)); % The circle
r{2} = linspace(1, 0.5, 60); % Spiral in
r{3} = linspace(1, 1.5, 60); % Spiral out
for ii = 1:3
[x{ii}, y{ii}] = pol2cart(theta(1:length(r{ii})), r{ii});
end
xy = [x;y]; plot(xy{:}); axis equal;
James
James 2013 年 8 月 21 日
@Kelly Kearney: Thank you. That works perfect.

サインインしてコメントする。

その他の回答 (2 件)

Image Analyst
Image Analyst 2013 年 8 月 21 日
You say "I have the data for them" so why don't you just use the plot() function and plot them? Am I missing something???
  1 件のコメント
James
James 2013 年 8 月 21 日
編集済み: James 2013 年 8 月 21 日
I have cropped the curve and that does make it better but I cannot get it to plot the full circle. I tried using a circle function for the circle but that failed too. Here is my code:
vehicle.a = 1.4; vehicle.b = 1.6; vehicle.m = 1600; vehicle.k = 1.5;
vehicle.l = vehicle.a + vehicle.b; vehicle.I = vehicle.m*vehicle.k^2;
vehicle.Cf = 6e4; vehicle.Cr = 6e4; vehicle.Ct = vehicle.Cf + vehicle.Cr;
% steering characteristics of the vehicle
steer.u = 1:1:40;
steer.a = [1.4 1.5 1.6]; steer.b = [1.6 1.5 1.4];
for i = 1:3
loop.a = steer.a(i);
loop.b = steer.b(i);
steer.s (:,i) = (loop.a*vehicle.Cf - loop.b*vehicle.Cr)/vehicle.Ct;
end
% Relations of turn radius and vehicle speed for constant steer angle
steer.delta = degtorad (3);
for j = 1:3
loop.s = steer.s(j);
for i = 1:40
loop.Vx = steer.u(i);
steer.R(i,j) = (vehicle.l/steer.delta)*(1-(((vehicle.Ct*loop.s*vehicle.m)/(2*vehicle.l^2*vehicle.Cf*vehicle.Cr))*loop.Vx^2));
end
end
% Change in turn radius with vehivle speed
loop.R = 50;
for j = 1:3
loop.s = steer.s(j);
for i = 1:40
loop.Vx = steer.u(i);
steer.delta(i,j) = (vehicle.l/loop.R)*(1-(((vehicle.Ct*loop.s*vehicle.m)/(2*vehicle.l^2*vehicle.Cf*vehicle.Cr))*loop.Vx^2));
end
end
for i = 1:3
steer.r = abs(steer.delta(:,i));
[loop.r,loop.theta] = spiral(steer.r);
steer.radius(:,i) = loop.r(:,1);
steer.theta(:,i) = loop.theta(:,1);
end
%Change of turning with increase of vehicle speed.
figure (4)
hold on
plot(steer.radius(:,1),steer.theta(:,1),'r')
plot(steer.radius(:,2),steer.theta(:,2),'b')
plot(steer.radius(:,3),steer.theta(:,3),'g')
title('Change of turning with increase of vehicle speed')
axis('equal')
hold off
The code is not yet cleaned up but that is no problem. Thank you for for taking such an interest in helping me.

サインインしてコメントする。


David Sanchez
David Sanchez 2013 年 8 月 21 日
Try this out:
[x,y] = meshgrid(1:150,1:100);
[th, rho] = cart2pol(x - 75,y - 50); % convert to polar
% spiral centered at (75,50)
Img = sin(r/3 + th);
imagesc(Img); colormap(hot);
axis equal; axis off;
  1 件のコメント
James
James 2013 年 8 月 21 日
Thank you for your help, but I am not looking to plot a spiral. I wanted to plot a curve with the radius increasing from a fixed distance.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by