Plotting an Archimedean Spiral

r = 12.5; %outer radius
a = 0; %inner radius
b = 0.01; %incerement per rev
n = (r - a)./(b); %number of revolutions
th = 2*n*pi; %angle
Th = linspace(0,th,1250*720);
x = (a + b.*Th).*cos(Th);
y = (a + b.*Th).*sin(Th);
plot(x,y)
The code executes well r, a, n and b are correct. Th and th both are also correct, but the problem which arises is in the values of x and y.
outer value or last value (desired) should be 12.5, but after execution it gives 78.53 and same corresponds to y.
what can be the solutions of this problem?

5 comentarios

KALYAN ACHARJYA
KALYAN ACHARJYA el 15 de Oct. de 2019
Is your plot not an Archimedean Spiral? or ??
Rajbir Singh
Rajbir Singh el 15 de Oct. de 2019
yes its an archimedean spiral
KALYAN ACHARJYA
KALYAN ACHARJYA el 15 de Oct. de 2019
Then what is the problem?
Rajbir Singh
Rajbir Singh el 15 de Oct. de 2019
Editada: Rajbir Singh el 15 de Oct. de 2019
Sir,
The output which i am getting is an Archimedean Spiral, thats fine. But the problem arises with the output values x and y.
According to the software that i am using r, a, n, b, th and Th values are correct.
My desired outer radius for archemedean spiral is 12.5 but it gives 78.53
Rajbir Singh
Rajbir Singh el 16 de Oct. de 2019
How can i change the rotation (clockwise or anti-cloclwise) of Archimedean Spiral?

Iniciar sesión para comentar.

 Respuesta aceptada

Jos (10584)
Jos (10584) el 15 de Oct. de 2019
In the computation of x and y you wrongly multiply b with Th. You should multipy by Th / (2*pi):
r = 12.5; %outer radius
a = 0; %inner radius
b = 0.5; %incerement per rev % Jos: changed to see the spiral!!
n = (r - a)./(b); %number of revolutions
th = 2*n*pi; %angle
Th = linspace(0,th,1250*720);
x = (a + b.*Th/(2*pi)).*cos(Th);
y = (a + b.*Th/(2*pi)).*sin(Th);
% better:
% i = linspace(0,n,1250*720)
% x = (a+b*i).* cos(2*pi*i)
plot(x,y)
[x(end) y(end)]

5 comentarios

Rajbir Singh
Rajbir Singh el 16 de Oct. de 2019
It works, thanks a lot Sir.
Rajbir Singh
Rajbir Singh el 16 de Oct. de 2019
How can i change the rotation (clockwise or anti-cloclwise) of Archimedean Spiral?
Jos (10584)
Jos (10584) el 16 de Oct. de 2019
hint: use a minus sign :-)
Rajbir Singh
Rajbir Singh el 17 de Oct. de 2019
It works, thanks once again. :)
Leroy Tyrone
Leroy Tyrone el 8 de Feb. de 2023
Editada: Leroy Tyrone el 8 de Feb. de 2023
@ Jos Is it possible to return which revolution in 'n' that each value in 'Th' belongs to? Alnd also to plot the points as equidistant by assigning a variable 's' as arc length?

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 15 de Oct. de 2019

Editada:

el 8 de Feb. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by