Plotting a spiral in MATLAB knowing the start and end points and number of turns?

조회 수: 20 (최근 30일)
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
Jacob Shulman
Jacob Shulman 2018년 11월 23일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

Jos (10584)
Jos (10584) 2018년 11월 23일
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
km meenu
km meenu 2020년 7월 19일
I have a code of galaxy model and spiral line code how i draw the spiral line in the spiral arms of the galaxy

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by