Set new origin in polar coordinates

Hi, I have a set of data in polar coordinates (r, theta). The default origin for matlab is (0,0). How I can change the origin to other points, such as (0,3)?
Thanks a lot.

 Accepted Answer

Ameer Hamza
Ameer Hamza on 18 May 2020
Edited: Ameer Hamza on 18 May 2020
One of the easiest ways I can think of is to convert the points from polar to cartesian, do the translation, and then convert back to polar. For example
r = 1;
theta = linspace(0, 2*pi, 100);
translate = [0 3];
x = r*cos(theta) + translate(1);
y = r*sin(theta) + translate(2);
r_trans = hypot(y, x);
theta_trans = atan2(y, x);
polarplot(theta_trans, r_trans)
Original:
Translated:

1 Comment

Thank you very much, Ameer. Your anwser solves my problem!

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!