Can MATLAB do radial enlargements of plots?

1 view (last 30 days)
I have attached an image to illustrate what I mean. I will gladly appreciate any advice on this. Many thanks.

Accepted Answer

DGM
DGM on 26 Jun 2022
You could do this by simply transforming the data itself
scale = 2;
center = [1 2]; % [x y]
r = 1;
th = 0:360;
x = r*cosd(th) + center(1);
y = r*sind(th) + center(2);
% transform data
x = (x - center(1))*scale + center(1);
y = (y - center(2))*scale + center(2);
hp1 = plot(x,y);
axis equal
grid on
... or you could do it by manipulating the graphics object directly
scale = 2;
center = [1 2]; % [x y]
r = 1;
th = 0:360;
x = r*cosd(th) + center(1);
y = r*sind(th) + center(2);
hp1 = plot(x,y);
axis equal
grid on
Ms = makehgtform('scale',scale);
Mtc = makehgtform('translate',[-center 0]);
t = hgtransform('parent',gca);
set(hp1,'parent',t)
set(t,'Matrix',Mtc*Ms)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!