Having trouble modifying a figure using homogeneous coordinates

1 Ansicht (letzte 30 Tage)
Hey everyone! As the title suggests, I'm having trouble modyfing a figure using homogeneous coordinates. I'm using the following code:
theta = linspace(0,2*pi,512);
x = sin(theta);
y = 2*cos(theta);
ellipse1 = [x;y;ones(size(x))];
Scale = [0.4 0 0;0 0.6 0;0 0 1];
Rotate = [cos(pi/4) sin(pi/4) 0 ;-sin(pi/4) cos(pi/4) 0;0 0 1];
Translate = [1 0 1;0 1 1;0 0 1];
transform = Translate * Rotate * Scale;
transformedellipse = transform * ellipse1;
plot(x,y)
hold on
plot(transformedellipse)
hold off
axis([-2 2 -3 3]);
What I'm hoping to do is scale the figure by 0.4 and 0.6 in the x and y dimensions, rotate it and then translate it but when I plot it instead of my desired ellipse a weird glitchy rectanlge shows up (I'm attaching the resulting figure). Any input you could give me as to what I'm doing wrong would be greatly appreciated. Thanks in advance!

Akzeptierte Antwort

Matt J
Matt J am 5 Sep. 2021
Bearbeitet: Matt J am 5 Sep. 2021
plot(x,y)
hold on
plot(transformedellipse(1,:),transformedellipse(2,:))
hold off
axis([-2 2 -3 3]);

Weitere Antworten (0)

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by