Having trouble modifying a figure using homogeneous coordinates

1 visualización (últimos 30 días)
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!

Respuesta aceptada

Matt J
Matt J el 5 de Sept. de 2021
Editada: Matt J el 5 de Sept. de 2021
plot(x,y)
hold on
plot(transformedellipse(1,:),transformedellipse(2,:))
hold off
axis([-2 2 -3 3]);

Más respuestas (0)

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by