Having trouble modifying a figure using homogeneous coordinates

2 views (last 30 days)
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!

Accepted Answer

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

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!