Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

Compound matrix transformation [code attached]

Posted on 2008-10-09
Medium Priority
696 Views
Hello Experts,

I have the following code which shows the rotation of a 2D polygon and what i want is to modify it using a compound matrix transformation so that the square rotates about an arbitrary point.

Can anyone help me how can i do such a thing ??

``````close all;
clear all;

% a 2D pologyon
p=[-1 1 1 -1 -1 ; -1 -1 1 1 -1];

% points p = in homogeneous coord
p(3,:)=1;

% axes for plotting the animation
figure;
hold on;
axis([-6 6 -6 6]);
axis equal;

for theta=0:0.005:2*pi

R=[cos(theta) -sin(theta) 0 ; sin(theta) cos(theta) 0 ; 0 0 1];

pdash=R*p;

pdash(1,:)=pdash(1,:)./pdash(3,:);
pdash(2,:)=pdash(2,:)./pdash(3,:);

cla;
plot(pdash(1,:),pdash(2,:),'b');
drawnow;

end
``````
0
Question by:perdoname_
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• Learn & ask questions

LVL 84

Expert Comment

ID: 22694376
0

LVL 4

Accepted Solution

SyfAldeen earned 2000 total points
ID: 22895982
perdoname_,
Here you are the modified code:
Transforming Objects - MATLAB

``````function rotsquare
close all;
clear all;

% a 2D pologyon
p=[-1 1 1 -1 -1 ; -1 -1 1 1 -1];

% points p in XY plane
p(3,:)=0;

% points p = in homogeneous coord
p(4,:)=1;

% axes for plotting the animation
figure;
hold on;
axis([-6 6 -6 6]);
axis equal;

%Rotate about the upper right corner (1,1)
Tx1 = makehgtform('translate',[-1 -1 0]);
Tx2 = makehgtform('translate',[ 1  1 0]);

for theta=0:0.005:2*pi
R=makehgtform('zrotate',theta);
pdash=Tx2*R*Tx1*p;
cla;
plot(pdash(1,:),pdash(2,:),'b');
drawnow;
end
``````
0

Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
This is a research brief on the potential colonization of humans on Mars.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
Suggested Courses
Course of the Month6 days, 1 hour left to enroll

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.