Plotting a spiral in MATLAB knowing the start and end points and number of turns?
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alec Lothian
am 23 Nov. 2018
Kommentiert: km meenu
am 19 Jul. 2020
I found a code and was able to modify it into the following code to creaet a spiral that starts at the point I want it to but I can't seem to get it to end where I want it to and have the desired numer of turns.
t = 1:5000;
u = .0265;
r0 = 10;
r = r0 +u*t;
omega = .005;
phi0 = 3*pi/2;
phi = -omega*t+phi0;
x = r .* cos(phi);
y = r .* sin(phi);
plot(x,y)
grid on;
1 Kommentar
Jacob Shulman
am 23 Nov. 2018
where do you want it to stop? you'll have to just figure out the value of t at that point. currently you have 5000 values of t. To shorten the spiral, shorten the array t.
Akzeptierte Antwort
Jos (10584)
am 23 Nov. 2018
This does the job (for an integer number of turns)
% given values
pos = [8 4 ; % startpoint
2 7 ] ; % endpoint
nturns = 3 ; % number of turns (integer value)
% engine
dp = diff(pos,1,1) ;
R = hypot(dp(1), dp(2)) ;
phi0 = atan2(dp(2), dp(1)) ;
phi = linspace(0, nturns*2*pi, 10000) ; % 10000 = resolution
r = linspace(0, R, numel(phi)) ;
x = pos(1,1) + r .* cos(phi + phi0) ;
y = pos(1,2) + r .* sin(phi + phi0) ;
plot(x,y,'b-',pos(:,1),pos(:,2),'ro-') ; % nturns crossings, including end point
7 Kommentare
km meenu
am 19 Jul. 2020
I have a code of galaxy model and spiral line code how i draw the spiral line in the spiral arms of the galaxy
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!